E4X わからんちん


なんでなんでなんで。

[as]
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;

public class E4Xtest extends Sprite {

private var _loader:URLLoader;

[Embed(source=”assets/cube.dae”, mimeType=”application/octet-stream”)]
private var ColladaModel:Class;

public function E4Xtest() {
this.test(new XML(new ColladaModel()));
}

public function test(data:XML):void {
default xml namespace = new Namespace(‘http://www.collada.org/2005/11/COLLADASchema’);
var allanime:XMLList = data.library_animations.animation;
for each (var anime:XML in allanime) {
var tag:Array = String(anime.channel.@target).match(/^Camera\/(.*)/);
if (tag is Array) {
trace(tag[1]);
switch (tag[1]) {
case ‘translate’:
var src:String = String(anime.channel.@source).substr(1);
trace(src, typeof(src));
var sampler:XMLList = anime.sampler.(@id == src); // 1: これはダメー
//var sampler:XMLList;
//sampler = anime.sampler.(@id == src); // 2: なぜかこーするとちゃんと取得できる
trace(sampler);
break;
}
}
}
}

}
}
[/as]

1 んとこで直接 sampler に代入すると sampler is null になる。で、2 みたく変数宣言と代入をバラすと sampler is XMLList となる不思議な動作。わからなーーい。

Flex Builder プロジェクトファイル

※ちゅーか何やってるかバレるな。

Technorati Tags: , ,