我正在寻找一种在单击以进入下一个屏幕时播放动画的方法。但是要让它随机生成到舞台上的不同位置,并带有新的动画。单击它不在的位置时,它会播放不同的动画,但不会进入我项目的下一部分。
例如,有六个黑框,您单击第一个黑框,一个红球出现动画并移动到下一个场景。下一次您浏览该项目时,您单击第一个框,但绿色球会出现动画。它没有移动到下一个场景。但红球将在其他 5 个盒子之一的后面。一旦找到红球就会做动画并进入下一个场景。
如果有人能猜出我的谜语,我将不胜感激。谢谢你。
我正在寻找一种在单击以进入下一个屏幕时播放动画的方法。但是要让它随机生成到舞台上的不同位置,并带有新的动画。单击它不在的位置时,它会播放不同的动画,但不会进入我项目的下一部分。
例如,有六个黑框,您单击第一个黑框,一个红球出现动画并移动到下一个场景。下一次您浏览该项目时,您单击第一个框,但绿色球会出现动画。它没有移动到下一个场景。但红球将在其他 5 个盒子之一的后面。一旦找到红球就会做动画并进入下一个场景。
如果有人能猜出我的谜语,我将不胜感激。谢谢你。
如果您有 6 个盒子,每个盒子的实例名称为box1
、box2
、box3
等...
假设你在库中有符号定义为:
您可以在行动中实施:
import flash.events.MouseEvent;
import flash.display.MovieClip;
// determine which box moves forward
var targetBox:uint = Math.ceil(Math.random() * 6);
trace("looking for box: " + targetBox);
// add mouse click event listeners to the boxes
box1.addEventListener(MouseEvent.CLICK, boxClickHandler);
box2.addEventListener(MouseEvent.CLICK, boxClickHandler);
box3.addEventListener(MouseEvent.CLICK, boxClickHandler);
box4.addEventListener(MouseEvent.CLICK, boxClickHandler);
box5.addEventListener(MouseEvent.CLICK, boxClickHandler);
box6.addEventListener(MouseEvent.CLICK, boxClickHandler);
// add "targetId" property to each movie clip
box1.targetId = 1;
box2.targetId = 2;
box3.targetId = 3;
box4.targetId = 4;
box5.targetId = 5;
box6.targetId = 6;
function boxClickHandler(event:MouseEvent):void
{
// get the movie clip of box clicked:
var clickedBox:MovieClip = event.target as MovieClip;
// remove mouse click for this box in the future
clickedBox.removeEventListener(MouseEvent.CLICK, boxClickHandler);
// if clicked box targetId matches our target Box call
// boxFound function; otherwise, otherwise, wrong target.
if(targetBox == clickedBox.targetId)
boxFound(clickedBox);
else
wrongBox(clickedBox);
}
function boxFound(clickedBox:MovieClip):void
{
// add red ball
var redBall:RedBall = new RedBall();
addChild(redBall);
redBall.x = clickedBox.x;
redBall.y = clickedBox.y;
// go to next frame after animation completes...
}
function wrongBox(clickedBox:MovieClip):void
{
// add green ball
var greenBall:GreenBall = new GreenBall();
addChild(greenBall);
greenBall.x = clickedBox.x;
greenBall.y = clickedBox.y;
}
这给了你这个:
我的理解是,您希望用户在其中一个黑盒子后面找到红球,但每次您玩红球时,都会在一个不同的、随机选择的盒子后面,对吗?在这种情况下,您可以执行以下操作:
这五个盒子存储在一个数组中。要选择球落在哪个盒子后面,请执行以下操作:
ballBox:int = Math.random() * (4 + 1);
该算法将给出一个介于 4 和 0 之间的随机数,因此ballBox
可用于访问数组中的随机框,如下所示:
boxArray[ballBox];
这就是如何获得随机盒子的要点。剩下的就是把球放在那个盒子后面。