2010-05-26 24 views
0

我看过的每个地方都指示我下载插件和插件,因为它们是“优秀的”。我只是寻找一个简单的淡入/淡出当一个孩子被添加/删除(如果淡入淡出是我能得到的,我会接受。)这是我打电话的功能...调用addChild时淡出孩子

var trashbagFrame:MovieClip = new menu_trashbag_mc_frame(); 
trashbagFrame.x = 900; 
trashbagFrame.y = 0; 

menu_trashbag_mc.addEventListener(MouseEvent.MOUSE_UP, trashbagContent); 

function trashbagContent(event:MouseEvent):void { 
    if(MovieClip(root).currentFrame == 850) { 
    while(MovieClip(root).numChildren > 2) 
    { 
     MovieClip(root).removeChild(MovieClip(root).getChildAt(MovieClip(root).numChildren - 1)); 
    } 
MovieClip(root).addChild(trashbagFrame); 
MovieClip(root).addChild (closeBtn); 
} 
else { 
MovieClip(root).addChild(trashbagFrame); 
MovieClip(root).addChild (closeBtn); 
MovieClip(root).gotoAndPlay(806); 
} 
} 
+0

我很喜欢人们通过说“简单”淡入/淡出而使它变得平淡无奇。 – 2010-05-26 20:49:54

回答

0

这些网站最有可能意味着像Tweener这样的插件,当您不断需要转换时,这些插件更加灵活/易于使用。

ActionScript 3.0库在fl.transitions包中有一个名为Fade的类。

import fl.transitions.*; 
import fl.transitions.easing.*; 

TransitionManager.start(img1_mc, {type:Fade, direction:Transition.IN, duration:9, easing:Strong.easeOut}); 

https://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/transitions/Fade.html

其中

img1_mc 

将成为对象(在你的情况下,孩子),你要应用的过渡。

+0

我会在哪里放置这些?我把它们放在每个函数之后,但什么都没有发生 – steve 2010-05-26 19:25:40

+0

我把代码直接放在每个变量声明在顶部,当它淡入它不是从0不透明开始,它从50%开始... – steve 2010-05-26 19:32:46

+0

什么你究竟想要做什么?如果您从链接阅读AS Ref,我将所有信息都放在那里。读它你有一个对象(img1_mc)将根据你给它的参数进行转换。转换类型(Fade),方向(IN),持续时间(9s)和缓动类型(Strong.easeOut)的参数。为了更简单,您可以使用Tween类。 var fadeIntween:Tween = new Tween(img1_mc,“alpha”,None.easeIn,0,1,9,true); https://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/transitions/Tween.html – phwd 2010-05-26 20:49:50

0

您可以使用enterFrame随着时间的推移更改属性。例如:

var trashbag:MovieClip = new MovieClip(); 
trashbag.alpha = 0; 
addChild(trashbag); 
trashbag.addEventListener(Event.ENTER_FRAME, enterFrameHandler); 

var closeBtn:MovieClip = new MovieClip(); 
closeBtn.alpha = 0; 
addChild(closeBtn); 
closeBtn.addEventListener(Event.ENTER_FRAME, enterFrameHandler); 

function enterFrameHandler(e:Event):void 
{ 
    var targetMC:MovieClip = e.currentTarget as MovieClip; 
    if(targetMC.alpha >= 0.9) 
    { 
     targetMC.alpha = 1; 
     targetMC.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); 
    } 
    else 
    { 
     targetMC.alpha += 5; 
    } 
} 

希望示例代码有帮助。我还没有测试过,但这个想法很有效。