作者metalalive (想玩音乐)
看板Flash
标题[问题] 请教一些 pv3D的问题
时间Wed Oct 14 00:07:08 2009
想请教各位先进
当我在 scene3D内使用 BitmapEffectLayer
并且在这个layer内加入一个物件 DisplayObject3D
并且以 InteractiveScene3DEvent 来控制滑鼠事件
当滑鼠移入 DisplayObject3D 的时候加入 BitmapFireEffect 效果
滑鼠移开的时候,移除 BitmapFireEffect 效果
现在发生一个错误
滑鼠移入的时候可以正常产生effcet
but 滑鼠移开的时候 effect没有如预期被移除 ??
程式码大致上如下...(程式码很长,故撷取重点说明)
peoson1 = new Sphere(myMaterial , 40, 0,0);
peoson1.getChildByName("chestBelly").addEventListener(
InteractiveScene3DEvent.OBJECT_OVER,
mouseOverHuman);
peoson1.getChildByName("chestBelly").addEventListener(
InteractiveScene3DEvent.OBJECT_OUT ,
mouseOutHuman);
bfe = new BitmapFireEffect(5,2);
bfe.flameSpread = 10;
ble = new BitmapLayerEffect( new GlowFilter(0xffb510, 0.3 , 10 , 10 , 4 , 3 , true , false));
HumanUseLayer = new BitmapEffectLayer(viewport);
HumanUseLayer.addDisplayObject3D(peoson1);
viewport.containerSprite.addLayer(HumanUseLayer);
default_scene.addChild(peoson1);
public function mouseOverHuman(e:InteractiveScene3DEvent):void{
isMouseOverHuman = true;
}
public function mouseOutHuman(e:InteractiveScene3DEvent):void{
isMouseOverHuman = false;
}
// Event.ENTER_FRAME 的时候会跑这一段 function
public function startShowEffect():void{
if(isMouseOverHuman){
if(!isFireEffectAdded){
HumanUseLayer.addEffect(ble);
HumanUseLayer.addEffect(bfe);
peoson1.useOwnContainer = true;
isFireEffectAdded = true;
}
textInfo.text = "user trigger startShowEffect";
}
else{
if(isFireEffectAdded){
// removeEffect can not work ??
HumanUseLayer.removeEffect(ble);
HumanUseLayer.removeEffect(bfe);
peoson1.useOwnContainer = false;
isFireEffectAdded = false;
}
textInfo.text = "user end startShowEffect";
}
}
不知道我少了哪几样步骤呢 ??
接触3D的东西不久...非常不熟还要多k多啃文件
谢谢
--
No time to pray....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.8.67.247
※ 编辑: metalalive 来自: 124.8.84.237 (10/15 14:36)