こんばんわ。
deokisiです。
画像リソースが全て揃っている場合にはプリロードで事足りるんですが、ゲーム開始以降は当然ながらプリロードは使えず、ロードを使う必要があります。
(ゲーム実行中に非同期に色んな人のtwitterアイコンとか表示したい時とか・・・)
ロードの場合にCB関数への通知が来るのですが、CB関数内でロードされた画像が何であるかわからないと期待するSpriteオブジェクトへの設定ができないです。
んー、どうやるんだろう?
CB関数内部でthisオブジェクトを探ってみると、_elementオブジェクトにsrcってのがあって、ここに画像のパスが格納されていました。
あー、これを使えば名前でチェックできそうですなー。
ロード開始時にこちらのthisオブジェクトにパラメータ追加とかできれば、もっとスマートにできそうなのですがよくわかんないので、これでやってこうかなと思います。
- 参考
//3個のイメージファイルを読み込んで、imgurl順で画像を縦並びに表示する例. var imgurl = ["hoge.jpg","foo.png","bar.png"] var icon = []; for(var i=0;i<3;i++){ //画像をロードするよ game.load(imgurl[i],function(){ //_element.srcをチェックして設定する配列番号確定. for(var i=0;i<3;i++){ if(imgurl[i] == this._element.src){ icon[i] = new Sprite(48,48); icon[i].image = game.assets[imgurl[i]]; icon[i].y = 48*i; scene.addChild(icon[i]); break; } } }); }
であであ。