michinoko blog

Information

date: 2010/01/26
category: flash.

getResourceByIdとgetResourcesByGroup

progression4もPublic Beta 1.3になって、またBeta 1.2でokやったのが、NGになってたり色々と仕様が変わりつつあるけど、とりあえずprogression4の新機能Resourceを使ってみました。カヤックさんの「Progression4の新機能Resourceを試してみる」などを参考に。

ついでにPreloadSWFも試してみたかったので、ロード処理はPreloader.asに書く。

//Preloader.asのatCastLoadStart()内、ex外部画像(img/gaibu1.png~img/gaibu5.png)の5枚を読み込む場合
var _loadCmd:LoadCommand;
for (var i:int = 1; i <= 5; i++) {
	_loadCmd = new LoadBitmapData(new URLRequest("img/gaibu" + i.toString() + ".png"), { cacheAsResource:true, context:new LoaderContext(true), group:"myGroup", id:"myId"+i.toString() } ),
	_preLoaderList.addCommand(_loadCmd);	//これは全体のLoaderList
}

これを、IndexSceneで呼び出す。

//IndexScene.asのatSceneLoad()内
trace("読み込んだ画像をidで呼び出す:", getResourceById("myId1"));
trace("読み込んだ画像をグループごと呼び出す:", getResourcesByGroup("myGroup"));
</pre>
すると、どちらも読み込めない。getResourceById("img/gaibu1.png")とすると読めるので、設定が出来てない模様。<br /><br />
よくよくドキュメントをみると、呼び出しは、getResourceById、getResourcesByGroupやけど、設定するときは、resId、resGroupで設定とする。というわけで、
<pre name="code" class="actionscript">
//Preloader.asのatCastLoadStart()内、ex外部画像(img/gaibu1.png~img/gaibu5.png)の5枚を読み込む場合
var _loadCmd:LoadCommand;
for (var i:int = 1; i <= 5; i++) {
	_loadCmd = new LoadBitmapData(new URLRequest("img/gaibu" + i.toString() + ".png"), { cacheAsResource:true, context:new LoaderContext(true), resGroup:"myGroup", resId:"myId"+i.toString() } ),
	_preLoaderList.addCommand(_loadCmd);	//これは全体のLoaderList
}

で、めでたしめでたしと。