Away3D(4.x Broomstick) - 如何设置加载3DS文件的材质的alpha?

时间:2011-09-01 02:44:19

标签: flash actionscript-3 3d away3d

我已经使用3DS解析器加载了一个模型,该解析器已经链接到一个材质并且加载正常。我想让这个模型半透明的部分时间,但不是所有的时间。我想设置alpha = .5,但是当我定位不是一个选项的材料时。

以下是代码并使用:

        var slingPar:Max3DSParser = new Max3DSParser();
        var slingLoader:Loader3D = new Loader3D();
        sling = new ObjectContainer3D();
        slingLoader.addEventListener(LoaderEvent.RESOURCE_COMPLETE, function(e:LoaderEvent):void
        {
            var mesh:Mesh = Mesh(sling.getChildAt(0));
            mesh.material.lights = [light1, light2, light3];
            mesh.rotationY = 180;

        });
        slingLoader.load(new URLRequest("assets/game/slingCup.3DS"),slingPar);
        sling = slingLoader;

我试过

mesh.material.alpha = .5

但没有运气。任何想法?

2 个答案:

答案 0 :(得分:1)

我明白了。我将加载网格的BitmapMaterial定位并从那里进行修改。

slingLoader.addEventListener(LoaderEvent.RESOURCE_COMPLETE, function(e:LoaderEvent):void
        {
            var mesh:Mesh = Mesh(sling.getChildAt(0));
            var map:BitmapMaterial = mesh.material as BitmapMaterial;
            map.ambient = .5;
            map.specular = .5;
            map.alpha = .8;
            map.lights = [light1, light2, light3];
            map.repeat = true;
            map.smooth = true;
            map.bothSides = false;

        });

答案 1 :(得分:0)

试一试:

var mesh:Mesh = [the mesh for changing]
for each (var item:SubMesh in mesh.subMeshes) {
item.material = null;
}
mesh.material = new ColorMaterial(0xFF00FF, ALPHA);