2

これがFlashDevelopなのか、一般的なActionScript3の質問なのかはわかりませんが、FlashDevelopプロジェクトにサウンドファイルを追加するための最良の方法を見つけようとしています。

たとえば、プロジェクトのbinフォルダー内に.mp3ファイルを配置すると、次のコード行でそれらをロード/再生できることがわかりました。

var sndreq:URLRequest = new URLRequest("foo.mp3");
var sound:Sound = new Sound();
sound.load(sndreq);
sound.play();

すべてのサウンドファイルをプロジェクトのbinディレクトリに移動するのはちょっと面倒なようです(ただし、それが必要な場合はそうしてください)。メディアファイルを右クリックすると「ライブラリに追加」オプションがあるように見えますが、その効果がわかりません(つまり、プロジェクトのbinディレクトリに自動的にコピーされることを期待していましたが、そのような運はありません)。

だから、私の質問は、FlashDevelopだけがあり、Flash CS3 / 4がないと仮定すると、これはローカルサウンドファイルをロードするための推奨される方法ですか?

4

2 に答える 2

4

上記の投稿で指摘されているように、質問の最初の部分は単純なパスの問題です。動的にロードされるすべてのアセット (xml、画像、サウンド) などのファイル構造を構築するのは良いことだと思います。bin ディレクトリをきれいに整頓します。

より大きな問題は、実行時にアセットを埋め込むかロードするかです。私は、1 つのプロジェクトを完成させようとして、1 つの swf (すべてのアセットが組み込まれている) がかなり大きくなり、長い事前ロードが必要になったことを何度も経験しています。これにより、開発者としての生活が楽になるかもしれませんが、エンド ユーザーにとってはあまり良いことではありません。

最近の私のお気に入りの方法は、アプリの最初の起動に必要なコンテンツのみを埋め込み、残りのアセットの負荷を可能な限り隠すことです。ユーザーをあなたの素晴らしい作品を見るのを待たせてはいけません!

私は実際に flash ide を使用して、swfs として公開する一連のアセットをパッケージ化しています (ただし、FD 埋め込みを使用して同じことを行うこともできます)。実行時にこれらの swfs をターゲットにして、アプリケーション ドメインからクラスを抽出します。私は主にマイクロサイトを構築しており、コンテンツのセクション (「ページ」) をロード可能な SWF に分割する傾向があります。ターゲット SWF が読み込まれると、ページをナビゲーションできるようになります。

別のルートは、個々のアセットをロードするために、BulkLoader のようなものを使用するか、Greensock の LoaderMax (いくつかの優れたキュー機能を備えている) を使用することです。

それが役立つことを願っています。乾杯!

于 2011-03-12T00:02:51.177 に答える
2

FlashDevelop のみを使用している場合は、2 つのオプションがあります。[embed ...] ステートメントを使用してパッケージ化されるように、コンパイル時にリソースを埋め込むことができます。

http://www.bit-101.com/blog/?p=853

また、FlashDevelop では、リソースを実際に右クリックして、[ドキュメントに挿入] をクリックすると、埋め込み行が自動的に書き込まれることに注意してください。

または、実行時にリソースをロードすることもできます。したがって、今のように URLRequest メソッドを使用します。ただし、bin ディレクトリに限定されません。あなたはできる:

new URLRequest("../../../../../foo.mp3");
// or
new URLRequest("www.stackoverflow.com/fakeresources/foo.mp3");

動的にロードするかどうかに関係なく、そのパスが必要になります。

全体として、動的が必要ない場合は、リソースを埋め込みます。

于 2011-03-09T08:16:36.830 に答える