ActionScript.埋込みリソースとプリローダについて

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前
住所: 東京

ActionScript.埋込みリソースとプリローダについて

投稿記事 by MoNoQLoREATOR » 14年前

つい先ほど、私が以前投稿した日記にISLeさんからのコメントがついていることに気づきました。http://dixq.net/forum/blog.php?u=106&b= ... 5472#r5472

これは申し訳ない。まさかあの内容でコメントを頂けるとは^^;ありがとうございます。

埋込みリソースとプリローダ   ですか。そんなシステムがあったとは・・・。
調べてみた結果、私はこう解釈しました。

埋込みリソース・・・ソースコードに[Embed(sorce='...')]と記述することによって画像・音声ファイルをswfファイルに埋め込むことができる。
プリローダ・・・画像・音声ファイルを埋め込んだswfファイルは読み込むのに時間がかかるため、その間の処理(NowLoading表示等)を記述しておけば、迅速に実行される。

以上、下記サイトを元にした解釈。
http://hkpr.info/flash/game/sample/s039.php
http://hkpr.info/flash/game/sample/s041.php


とりあえず音声ファイルを埋め込んでみることにしました。
プリローダも作る予定なので、プリローダ付きのプロジェクトを新規作成し、下記サイトのコードをコピペし、埋め込むファイルのURLを
[Embed(source='test.mp3')]
と変更し、swfファイルと同じフォルダにtest.mp3を置きました。
http://hkpr.info/flash/game/sample/s039.php

ビルドした結果、

Main.as(31): col: 4: Error: unable to resolve 'ume.mp3' for transcoding
[Embed(source='ume.mp3')]
Main.as(31): col: 4: Error: Unable to transcode ume.mp3.

というエラーが吐き出されました。


これはどういったエラーなのでしょうか。もっとも、埋込みソースとプリローダの解釈から間違えているような気がしてならないのですが、どうでしょうか。

ご教授よろしくお願い致します。

ISLe
記事: 2650
登録日時: 14年前

Re: ActionScript.埋込みリソースとプリローダについて

投稿記事 by ISLe » 14年前

埋め込みリソースはプロジェクトファイルのあるディレクトリからの相対パスになります。
#絶対パスも可能かもしれませんがお勧めしません。

埋め込みリソースはその名のとおりswfに埋め込まれるので、ビルドしたら実行に必要なのはswfだけになります。

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前
住所: 東京

Re: ActionScript.埋込みリソースとプリローダについて

投稿記事 by MoNoQLoREATOR » 14年前

ありがとうございます。解決しました。

自分が書いた文章を読み直して疑問がわいてきたのですが、プリローダを用意することに意義はあるのでしょうか?
生成されるswfファイルは1つです。
そのファイルの読み込みが完了しないことにはプリローダに記述した処理は行われないわけで。
しかもそのファイルの中に素材のデータが全て埋め込まれているわけで。
つまりは素材のデータを含む全てのデータを読み込んだ後にしかプリローダの処理が実行されないということではないのでしょうか?
それとも、その辺りはうまいことやってくれるのでしょうか?

そもそもswfファイルのプログラムはどのような原理で動いているのでしょうか。
アドビフラッシュプレイヤーが全て処理しているのかと思ったらApachが起動していないと動作しませんし。
Google先生も教えてくれませんし・・・。

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前
住所: 東京

Re: ActionScript.埋込みリソースとプリローダについて

投稿記事 by MoNoQLoREATOR » 14年前

別の問題が発生しました。
この方法で画像を表示させようとしたのですが

強制型変換に失敗しました。Main_iceClass@19b0fa9 を flash.display.BitmapData に変換できません。

と言われてしまいました。 as を使用するとエラーは出なくなったのですが、画像は表示されませんでした。

以下ソース
► スポイラーを表示

ISLe
記事: 2650
登録日時: 14年前

Re: ActionScript.埋込みリソースとプリローダについて

投稿記事 by ISLe » 14年前

36行目は
ice = new iceClass;
で良くないですか?

プリローダを日本語訳すると、先にロードされる者、です。
真っ先に読み込まれてすぐに実行される仕組みがプリローダというわけです。

ウチにApacheは入ってませんが、作ったswfはローカルで動きますよ。
Flashプレイヤーで再生できますし、IEにドロップしても再生できてます。

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前
住所: 東京

Re: ActionScript.埋込みリソースとプリローダについて

投稿記事 by MoNoQLoREATOR » 14年前

ありがとうございます。
BitmapDataではなくBitmapを返すのでしたか。変更してみるとうまくいきました。

やはりプリローダーを用意するとうまいことやってくれるのですか。安心しました。

先ほどためしてみたらApacheが起動していなくても動作しました。きっと思い違いだったのですね。失礼しました。