【发布时间】:2014-12-18 10:13:51
【问题描述】:
我想做这样的http://www.bakedbymelissa.com/checkout/CustomizerCreator.aspx
现在我有正方形(square1,square2,square3,square4)作为纸杯蛋糕和圆圈(circle1,circle2,circle3,circle4)作为按钮。如果我点击circle1,square1 应该会出现等等。 AS 有一个单独的层,形状都在一个层中。我将正方形放在彼此的顶部,但问题是,当我单击按钮时,正方形会显示出来,但实际上看不到它,因为它位于其上方的正方形下方。你如何做到这一点,以使相应的方块出现,而前一个出现的方块消失?您知道的任何可以解决问题的替代方法都可以。
AS3:
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;
var fadeIn:Tween;
var thisCircle:MovieClip;
var thisSquare:MovieClip;
var circles:Array = new Array(circle1,circle2,circle3,circle4);
var squares:Array = new Array(square1,square2,square3,square4);
for(var i:Number = 0; i < circles.length; i++)
{
thisCircle = circles[i];
thisCircle.buttonMode = true;
thisCircle.id = i;
thisCircle.addEventListener(MouseEvent.CLICK, doFadeIn);
thisSquare = squares[i];
thisSquare.alpha = 0;
}
function doFadeIn(e:MouseEvent):void
{
e.currentTarget.mouseEnabled = false;
trace(e.currentTarget.name + " is disabled while " + squares[e.currentTarget.id].name + " tweens in.");
fadeIn = new Tween(squares[e.currentTarget.id],"alpha",None.easeNone,0,1,2.5,true);
fadeIn.addEventListener(TweenEvent.MOTION_FINISH,enableButton(e.currentTarget));
}
function enableButton(thisButton:Object):Function
{
return function(e:TweenEvent):void
{
thisButton.mouseEnabled = true;
trace(e.target.obj.name + " has finished fading in, "+ thisButton.name + " is now enabled again.");
};
}
//感谢fruitbeard的代码。
【问题讨论】:
-
与其拥有多个方形 MC,不如将它们全部放在一个 MC 中。在您的情况下,将每个方块放在自己的框架(1-4)上。然后,无需显示/隐藏一堆 MC,您只需告诉一个 MC gotoAndStop(x),其中 x 是您想要看到的帧。
标签: actionscript-3 flash movieclip