//parsersexample/ParsersExample.as内のonColladaLoadメソッド抜粋
private function onColladaLoad(e:Event):void {
// Model parsing
// Парсинг модели
var parser:ParserCollada = new ParserCollada();
parser.parse(XML((e.target as URLLoader).data), "parsersexample/", true);
trace(parser.objects);
var mesh:Mesh = parser.getObjectByName("Cylinder01") as Mesh;
mesh.x = 0;
scene.addChild(mesh);
// Загрузка ресурсов
uploadResources(mesh.getResources(false, Geometry));
// Собираем текстуры и назначаем материалы
var textures:Vector.<ExternalTextureResource> = new Vector.<ExternalTextureResource>();
for (var i:int = 0; i < mesh.numSurfaces; i++) {
var surface:Surface = mesh.getSurface(i);
var material:ParserMaterial = surface.material as ParserMaterial;
if (material != null) {
var diffuse:ExternalTextureResource = material.textures["diffuse"];
if (diffuse != null) {
textures.push(diffuse);
surface.material = new TextureMaterial(diffuse);
}
}
}
// Loading of textures
// Загрузка текстур
var texturesLoader:TexturesLoader = new TexturesLoader(stage3D.context3D);
texturesLoader.loadResources(textures);
}