Loaderを使って取得した画像データをBitmapで受取りたいのですが、
Error: 静的型 flash.display:DisplayObject の値が、関連しない可能性が高い型 flash.display:Bitmap に暗黙で型変換されています。
map = lo.content;
と言われてしまいます。何がいけないのでしょうか。参考書ではBitmapにLoader.contentを代入していましたが!?
↓以下ソース
► スポイラーを表示
描画されない根本的な原因はMoNoQLoREATOR さんが書きました:ありがとうございます。解決しました。しかし、自作の読み込み用関数を使用すると、読み込みは正常に完了しているようなのですが、画像が表示されません。
自作の読み込み用関数は、
.LoadGraph()で読み込む画像のパス(名前)と画像データを格納したいBitmap型オブジェクトを指定
↓
.Start()で完了後に呼び出す関数を指定して読み込み開始
↓
完了後の処理
という仕様です。
#include
int main()
{
int *array[5]; // MyLoaderのreqBitmaps
int valueA[3] = {1, 2, 3}; // Mainクラスのmap
int valueB[3] = {4, 5, 6}; // MyLoaderのgraLoader.content
int counter;
array[0] = valueA; // LoadGraph
array[0] = valueB; // LoadedGraph
// 画面にMainクラスのmapを描画
for (counter = 0; counter < sizeof(valueA) / sizeof(*valueA); counter++)
{
printf("%d ", valueA[counter]); // 描画されるのは[4 5 6]ではなく[1 2 3]
}
return 0;
}
かなり強引な修正ですね・・・MoNoQLoREATOR さんが書きました: 呼び出し元でArray型オブジェクトをつくってその参照を渡し、そこにどんどんデータを放り込む仕様にしました。
ソースコード内で分からない点があったら聞いてくださいね、どういった意図があるのか答えますので。MoNoQLoREATOR さんが書きました:bitter_foxさんのソースコードを読んでみたのですが、う~ん、どうも私には他人のソースコードを読み解く力がないみたいです。とりあえずMyLoaderクラスのメンバ変数をprivatにしてみました。
かなり楽とのことですが、フィールドでEventDispatcherを持った場合とを考えるとそんなに楽にはなってないのではないですか?MoNoQLoREATOR さんが書きました: 継承の話ですが、今回に限り継承した方がかなり楽だと思いますので、これはこれで良いのでは?
BitmapDataで気付いたんですけど、引数で渡されたBitmap(nullでないもの)のbitmapDataに読み込んだ画像(Loader#contentBitmap)のbitmapData(もしくはそれのクローン)を代入すればいいんじゃないでしょうか?MoNoQLoREATOR さんが書きました:ちなみに画像データをLoaderではなくBitmapで受け取る理由は、「LoaderよりBitmapの方がメモリ食わないし、LoaderのメンバにはBitmapDataがない(?)ことが不便」だからです。今のところ大した意味はありません。
Bitmap.bitmapData = (Loader.content as Bitmap).bitmapData;MoNoQLoREATOR さんが書きました: はい、それは最初に思いついて、その後何度も挑戦しているのですがLoaderの中にbitmapDataが見つからないのです。ないはずはないと思うのですが・・・。しかたなく
Bitmap.bitmapData = Loader.content as BitmapData
としてみたのですが、画像は表示されませんでした。
そうですね。MoNoQLoREATOR さんが書きました: >>ActionScript3のリファレンスを見るとメソ
>>ッドの命名規則がローワーキャメルケースですよね?
>>MyLoaderのメソッドはそれに従ってないように思うのですが・・・
つまり、メッソド名は小文字から始めないといけないということですか?