0

単一の SWF としてエクスポートしようとしている Flash プロジェクトがあります。約 6 つの他の SWF をロードするメイン SWF ファイルがあり、メイン SWF と子 SWF の両方が他の外部アセット (画像、サウンドなど) を参照します。すべてを 1 つの .swf ファイルとしてパッケージ化したいので、他のアセットを .swf と一緒に持ち歩く必要はありません。

すべてのコーディングはタイムラインで行われますが、アセットは Flash オーサリング環境にインポートされておらず、今はそれを行う時間がありません (どこでも参照が多すぎます)。この種のパッケージ化されたエクスポートを可能にするオプションが欠けていることを願っていますが、そのようなものは見つかりませんでした。

Flex や mxmlc にはアクセスできません (また、AS はタイムライン ベースであるため、必ずしも役立つとは限りません)。何かご意見は?

ありがとう!

PS...私が言っていることを正確に行う方法がない場合は、すべてのアセットを「assets」フォルダーなどに入れることで対処できるので、main.swf とアセットを持ち歩くだけです。フォルダ。ここでの問題は、アセットへのすべての参照が main.swf ファイルと同じフォルダーにあると想定しているため、すべてがローカルであると想定されていることです... Flash のすべての外部参照のスコープを変更する方法はありますか? (たとえば、コード内のすべてのローカル参照は、実際には /assets で検索されます)?

4

3 に答える 3

2

swfmill / mtascを使用して swfs を XML に逆コンパイルし、派手な XSLT を使用してそれらを再結合し、swfmill/mtasc で再コンパイルできる場合があります。

それが機能せず、MovieClip.loadMovie または MovieClipLoader.loadMovie を使用している場合は、それらのメソッドをオーバーロードして URL をインターセプトできます。

var realLoadMovie:Function = MovieClip.prototype.loadMovie;

MovieClip.prototype.loadMovie = function(url:String, method:String) {
    return realLoadMovie("assets/" + url, method);
}

var test:MovieClip = createEmptyMovieClip("testclip", getNextHighestDepth());
test.loadMovie("test.swf");

URL に file:// などのリソース タイプのプレフィックスがある場合は、追加の文字列解析を行う必要があります。

于 2009-09-12T01:41:52.163 に答える
0

align や scale などのように、swf を埋め込むときに追加できる base パラメーターがあります。base が設定されている場合、すべての相対 URL には、定義したパスがプレフィックスとして付けられます (まあ、ほとんどすべて。動画とファイル参照オブジェクトはここでは例外)。それ以外は、ニカジのソリューションを使用します。

于 2010-04-17T23:29:23.710 に答える
-1

ジャスティンさん、こんにちは。

共有ライブラリの使用を検討する必要があるようです。チェックアウト:

http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14767

于 2008-10-13T16:15:52.287 に答える