按钮中的RollOver和RollOut效果

时间:2013-09-28 21:35:33

标签: actionscript-3 flash flash-cs5 flashdevelop

我正在使用下面的代码更改翻转和卷展栏上的按钮颜色并单击。我有以下问题  1.单击按钮时颜色没有改变。  2.按钮一旦点击就无法工作。

pages.gotoAndStop("home");


// list of button instance names
var previousClicked:DisplayObject;
var buttonsss:Array = [home, menudown.about, menudown.portfolio, menudown.clients,     menudown.pricing, menudown.contact];


for each ( var mc:MovieClip in buttonsss)
{
mc.buttonMode = true;
mc.mouseChildren = false;
mc.addEventListener(MouseEvent.MOUSE_UP, onClick);
mc.addEventListener(MouseEvent.ROLL_OVER, rolloverEffect);
mc.addEventListener(MouseEvent.ROLL_OUT, rolloutEffect);

}


function onClick(e:MouseEvent):void
{

pages.gotoAndStop(e.target.name);
e.currentTarget.mouseEnabled  = false;  
TweenLite.to(e.currentTarget,2,{tint:0x666666, ease:Strong.easeOut});
TweenLite.to(previousClicked,2,{tint:null , ease:Strong.easeOut});// set the     previous clicked to null tint
previousClicked.addEventListener(MouseEvent.ROLL_OUT, rolloutEffect);// restore the Roll_Over effect
previousClicked = DisplayObject(e.target); // update the last clicked button
e.target.removeEventListener(MouseEvent.ROLL_OUT, rolloutEffect);

}

function rolloverEffect(e:MouseEvent):void{

TweenLite.to(e.currentTarget,2,{tint:0x666666, ease:Strong.easeOut});

}
function rolloutEffect(e:MouseEvent):void{

//should change tint to null just when its enabled, but its changing always     (enabled or disabled)
TweenLite.to(e.currentTarget,2,{tint:null , ease:Strong.easeOut});

}

2 个答案:

答案 0 :(得分:1)

我如何一直这样做是使用内置按钮而不是使用代码。 如果单击顶部栏中的窗口然后单击组件(靠近底部),则会显示一个小窗口,然后展开用户界面文件夹并从按钮项拖放。然后使用舞台上的那个按钮,如果你双击它,你将进入编辑符号屏幕,它将有按钮的每个状态的图片,如果你双击你想要的状态,那么你可以直观地编辑该版本的按钮。

希望这会有所帮助。

注意:我刚开始使用flash pro-cs5.5并且你的标签显示flash-cs5我不确定该功能是否可用于5。

答案 1 :(得分:0)

我对Tweenlite不熟悉,但我猜他在这种情况下所做的只是改变颜色,对吗?如果是这样,我建议在时间轴上创建颜色更改,并使用框架标签与gotoAndStop结合来创建不同的效果。这也应解决有关按钮单击一次后无效的问题。