2010-11-29 13 views
0

コンパイル時にswfにデータ(例えば、アセットのコレクション(ビデオ、画像など))を挿入することは可能ですか?コンパイル時にswfでデータを挿入

実行時にスタンドアロンアプリケーション(オンとオフライン)として実行する必要があるため、必要なすべてのデータを含むswfを実行時にエクスポートする必要があるFlexアプリケーションがあります。

これまでの考え方は、フレックスコンパイラを呼び出して必要なデータを送るサーバーサイドスクリプトを作成することでした。このアプローチは、1つのファイルに対して[Embed]タグを使用するとうまくいくように見えますが、エクスポートされた各swfの長さが異なるデータのコレクションを挿入しようとすると面倒です。

アセットごとに1つの埋め込み変数を含むmxmlファイルを生成し、コンパイル時にそれを組み込むことができますが、そのアプローチは理想的と思われます。

私たちはいくつかのアクションスクリプトのバイトコードライブラリを調べましたが、これはこれに適していないようです。

この種の問題に対する提案や他のアプローチはありますか?

Thxを、

バート

+0

1)実際に資産を埋め込む必要はありますか? 2)Moduleを使用してアプリケーション全体ではなく、資産のみを再コンパイルすることを考えましたか? – David

答えて

3

[Embed]は間違いなく道です。たくさんの埋め込みを持つASファイルを生成できます。生成されたコードは少し醜いかもしれませんが、より良いapiも生成できます。たとえば、あなたは配列をしたい場合は、このようなコードを生成します。

[Embed(...)] 
private var img_0:Class; 

[Embed(...)] 
private var img_1:Class; 

[Embed(...)] 
private var img_2:Class; 

public var images:Array = [img_0, img_1, img_2]; 

のみ醜さがプライベート変数にのみコードジェネレータでそのようにすると、表示されます。 public変数は配列です。

0

私はあなたがそれを行う必要がある理由はよく分からないが、私はそのようなテンプレートか何かから必要なのActionScriptファイルを生成しようとして、フレックスを呼び出しますねコンパイラ。 これがあなたを助けてくれることを願って...

0

as3swfは、空ByteArrayからSWFファイルを生成することが可能であり、それはそこに

+0

as3swfはこれまでチェックしたライブラリの1つですが、これまで提供してきた機能は限られています。結果のSWF内のXML変数とアセットのコレクションを変更する必要があります。 –

0

サムが言ったように、[埋め込み]は仕事ができる組み込みグラフィックスを挿入することが可能です私の知る限りで
が、何ロードしようとしているみては?私の最初の反応は、すべての要求に対して再コンパイルすることは、サーバー上で大きな影響を与えることです。

+0

サーバ上の負荷は実際には問題です。そのため、既存のswf @ runtimeを変更するなどの代替ソリューションが優れていますが、ステージ上にベクターグラフィックスを描画するより複雑なシナリオではこれを行う方法が見つかりませんでした。 –

関連する問題