0

我有一个小项目,要求我创建一个按钮,该按钮将随机将库中的对象放置到舞台上。我了解如何使用按钮将预定义项目从库中放置到舞台,以及如何使用 for 循环将对象的新实例推入其中,但我不知道如何创建、设置随机坐标和放置孩子走上舞台。

我会发布我拥有的代码,但它甚至一点都不起作用。我尝试使用 getDefinitionByName 并将其推入一个数组,然后将其放置在舞台上,但 nada。我似乎无法解决这个问题。有任何想法吗?

4

2 回答 2

0

我从来没有使用过 AS3(只有 AS2)中的库,所以我无法帮助你。其余的相当容易。

因此,您创建了一个库项目的实例。同样,不确定如何,所以我将创建一个简单的示例Sprite

var inst:Sprite = new Sprite();

要将其添加到舞台,请调用addChild主对象。除非您有特定的理由,否则您永远不应该单独调用它。stage在这种情况下,我将假设主要对象只是主要MovieClip对象,可以使用this关键字来引用。

this.addChild( inst );

要随机放置它,我们将使用Math.random(). 该方法产生一个介于 0 和 1 之间的数字。要将其随机放置在舞台上,我们将其乘以舞台的大小。

// subtract the size of the object to prevent it from
// moving outside the bounds of the stage
inst.x = Math.random() * stage.stageWidth - inst.width;
inst.y = Math.random() * stage.stageHeight - inst.height;

这样将创建一个对象,将其添加到舞台,并将其移动到舞台上的随机位置,而不会超出舞台的范围。您只需要用Sprite您的库对象替换我的通用实例化并将其全部放入一个循环中(我可以假设您知道该怎么做,或者至少谷歌可以弄清楚)

于 2013-11-08T17:46:12.530 回答
0

如果您知道如何将对象添加到您的舞台上,那么它就没有更多的科学依据了。

//Your button
button.addEventListener(MouseEvent.CLICK, addItem);

//function to generate random coord.
function addItem(e:MouseEvent):void {
   var c:DisplayObject = new YourItemInLibrary();
   c.x = Math.random() * stage.stageWidth;
   c.y = Math.random() * stage.stageHeight;
   addChild(c);
}
于 2013-11-08T17:44:27.150 回答