Away3D 4.0 透明からフェードインさせる
Away3D 4.0.0 Beta で、Mesh を透明からフェードインさせる方法を見つけるまでに結構時間がかかったので、コードをメモしておきます。
ColorMaterial や TextureMaterial の alpha情報を Tweener で操作するやり方です。
(赤色部分が該当コードです。)
package
{
import away3d.containers.View3D;
import away3d.entities.Mesh;
import away3d.materials.ColorMaterial;
import away3d.primitives.CubeGeometry;
import caurina.transitions.Tweener;
import flash.events.Event;
[SWF(backgroundColor="#FFFFFF", frameRate="60", width="800", height="600")]
public class AlphaTest extends View3D{
public function AlphaTest(){
antiAlias = 4;
backgroundColor = 0xcccccc;
var material : ColorMaterial = new ColorMaterial(0x333333);
var cubeGeo : CubeGeometry = new CubeGeometry(256, 256, 256, 4, 4, 4);
var cube : Mesh = new Mesh(cubeGeo, material);
cube.rotationX = 30;
cube.rotationY = 30;
scene.addChild(cube);
var mt:ColorMaterial = (cube.material as ColorMaterial);
mt.alpha = 0;
Tweener.addTween(mt, { alpha:1, transition:"linear", time:3 } );
addEventListener(Event.ENTER_FRAME, update);
}
private function update(e:Event):void {
render();
}
}
}
この方法だと、ObjectContainer3D とかでまとめたグループまるごとのアルファ情報をいじりたい場合でも、ひとつひとつのマテリアルのアルファ情報を触らないといけないので、結構手間なんですが、もっといいやり方があるんですかね?