デフォルトでアプリケーションはアプリidに'Container'を付加された id 具体的には上記のアプリケーションの例では'Container'のidを持つ新規のdivの内部に置かれます。アプリケーションを既存のdiv内に置くには、divのidをlz.embed.({... appenddivid: 'divid'})の引数とすることも出来ます。別の方法としては既存divのidを変更するか、例えば'<div id="Container">...</div>'のように新規のidを追加することも出来ます。

SOLO配置ウィザード

OpenLaszloサーバーには、SOLO配置用にアプリケーションのパッケージ化を支援するSOLO配置用ウィザードアプリケーションが用意されています。

アプリケーションのヒストリー機能をディスエーブルとしたいときはhistory 引数をfalseに設定します。例えばlz.embed.({... history: false}...)のように。

サンプルのデプロイ結果を見るページは こちらです。

もしHTMLがLZXソースファイルとは別のディレクトリに置かれているならば、 'url'パラメータの変更が必要となるでしょう。

Deploying This Application

このアプリケーションの配置

HTMLラッパーを利用

アプリケーションの配置に一番簡単な方法は ?lzt=html リクエストを使うことです。 こうすることでJavaScriptライブラリを使いアプリケーションを埋め込んだHTMLを作成します。 開発用ページ(?lzt=app_console)とは違い、デベロッパーコンソールとコンパイラ・ワーニングを表示しません。

HTML配置ページ結果のプレビューは こちらです。 (このページはブラウザ内で動的に作成されており、各種ブラウザに対応します。ブラウザからのソースビューとHTML配置ページ用のページソースとは異なります。)

埋め込みオブジェクトタグによる配置

JavaScriptライブラリを使わなくても、アプリケーションをページ内に埋め込むことができます。 もしほとんどの対象クライアントがブラウザのJavaScriptを無効にしていることが予想されるなら、この方法がよい選択となります。

埋め込みオブジェクトタグによるHTMLページはこちら. (このページはサーバーによって動的に作成されており、各種ブラウザに対応します。 すべてのブラウザ向けに生成されたコードはXHTML1.0に対応していますが、Windows版Internet Explorerのみ特別な扱いを受けます。 Windows版Internet Explorer向けに生成されたコードは、正しいFlashプラグインバージョンがインストールされているか確認する拡張コードが埋め込まれています。そのため、アプリケーションを大きな静的ページの中に埋め込む必要がある場合は、XHTML1.0バージョンを利用してください。)

静的XHTML1.0仕様のコードを使って配置するには、Laszloアプリケーションを表示させたいHTMLドキュメント内に以下のコードを貼り付けてください。

<object type="application/x-shockwave-flash"
        data="?lzt=swf"
        width="" height="">
  <param name="movie" value="?lzt=swf" />
  <param name="quality" value="best" />
  <param name="scale" value="noscale" />
  <param name="salign" value="LT" />
  <param name="menu" value="false" />
</object>

embed-compressed.js JavaScriptライブラリを利用した配置

embed-compressed.jsJavaScriptライブラリを利用して配置するには、次の行をLaszloアプリケーションを貼り付けるHTMLドキュメントの<head>セクションに貼り付けます。

<script src="/lps/includes/embed-compressed.js" type="text/javascript"></script>

次に次のコードを<body>セクション内のLaszloアプリケーションを表示したい場所へ貼り付けます。

<script type="text/javascript">
    lz.embed.swf({url: '?lzt=swf', bgcolor: '', width: '', height: '', id: '', accessible: ''});
</script>

lz.embed.swf()を呼ぶコードを生成するようjsリクエストタイプを使うこともできます。

<script src="?lzt=js" type="text/javascript">
</script>

必要とあればlz.embed.swf(properties[, minimumVersion])の2番目の引数にバージョンナンバーを指定してFlashプレーヤをアップグレードします。デフォルトのバージョンナンバーは 7 です。現在Safariでは 8 である必要があります。このサンプルではFlashプレーヤ 8 もしくはそれ以降を使用します。

lz.embed.swf({url: '?lzt=swf', bgcolor: '', width: '', height: '', id: '', accessible: ''}, 8)

SOLOアプリケーションへパラメータを渡す

配置したSOLOアプリケーションへ、パラメータをアプリケーションに渡したい場合はサーバーが生成したHTMLラッパーページの修正が必要となります。

次のlz.embed.swf()行はすべてのクエリパラメータをLaszloアプリケーションへ渡しています。

lz.embed.swf({url: 'main.lzx.lzr=swf7.swf?'+window.location.search.substring(1), bgcolor: '', width: '', height: '', id: '', accessible: ''});

main.lzx.lzr=swf7.swf? からmain.lzx?lzt=swfへの変更点は '+window.location.search.substring(1)'が追加されていることです。

embed-compressed.js JavaScriptライブラリを利用した配置

embed-compressed.jsJavaScriptライブラリを利用して配置するには、 次の行をLaszloアプリケーションを表示したいHTMLドキュメントの<head>セクションに貼り付けます。

<script src="/lps/includes/embed-compressed.js" type="text/javascript"></script>
次に次のLFCのコピーを<head>セクション内のLaszloアプリケーションを表示したい場所へ貼り付けます。 LFCをロードするためにlz.embed.lfc() は<script/> タグをHTMLに書き込みます。 ここでは2個の引数を扱います。: ロードされるLFCのURL、リソースをロードすべきベースURL。 この動作はページごとに一度だけ必要です。SOLO配置をするときはアプリケーションのこれらのURLは変わるかも知れませんので、ご注意ください。 このアプリケーションでは次のようにします。
<script type="text/javascript">
    lz.embed.lfc('/', '');
</script>

最後に次のコードを<body>内のLaszloアプリケーションを表示したい場所へ貼り付けます。

<script type="text/javascript">
    lz.embed.dhtml({url: '?lzt=object', bgcolor: '', width: '', height: '', id: ''});
    lz.embed..onload = function loaded() {
        //アプリケーションのローディング完了時に呼ばれます。
    }
</script>

ブラウザのJavaScriptからアプリケーションにアクセスする

各々のアプリケーションはlz.embed.swf(...) もしくは lz.embed.dhtml(...) に渡した id に応じて lz.embedの内部に自分の場所を確保しています。 それに加え、lz.embed.applications はそのページにid によって埋め込まれた全てのアプリケーションを追跡します。 例えば、id: 'foo'で埋め込まれたアプリケーションはlz.embed.foo もしくは lz.embed.applications.fooでアクセスできます。 このアプリケーションの場合はlz.embed. もしくは lz.embed.applications.でアクセスできます。

アプリケーションにアクセスする前に'loaded'プロパティがtrueかどうかを確認すると良いでしょう。

lz.embed..loaded

何時アプリケーションがロードされ、実行準備が出来たかどうかを知るには次のようにします。

lz.embed..onload = function loaded() {
    ...
}
      

アプリケーションの中でcanvas属性を見るには次のようにします。

value = lz.embed..getCanvasAttribute('attributename')

アプリケーションの中でcanvas属性を設定するには次のようにします。

lz.embed..setCanvasAttribute('attributename', value)

ページ内の全てのアプリケーションの中でcanvas属性を設定するには次のようにします。

lz.embed.setCanvasAttribute('attributename', value[, history])
オプションのhistory 引数がtrue のとき、ブラウザのヒストリーメカニズムが働き、setCanvasAttribute()を追跡します。その結果、ブラウザのフォワードやバックボタンが押されたとき、canvasの属性がリセットされます。

アプリケーションの中でメソッドをコールするには次のようにします。

value = lz.embed..callMethod('globalreference.reference.anyMethod(...)')
メソッドの文字列表現を渡すことで引数を渡します。 グローバルスコープ内に'globalreference'がみつけらられる限り、アプリケーション内のどのメソッドも使用できます。

ページ内の全てのアプリケーションの中でメソッドをコールするには次のようにします。

lz.embed.callMethod('globalreference.reference.anyMethod(...)')

もっと情報が必要なら