我有一个小项目,要求我创建一个按钮,该按钮将随机将库中的对象放置到舞台上。我了解如何使用按钮将预定义项目从库中放置到舞台,以及如何使用 for 循环将对象的新实例推入其中,但我不知道如何创建、设置随机坐标和放置孩子走上舞台。
我会发布我拥有的代码,但它甚至一点都不起作用。我尝试使用 getDefinitionByName 并将其推入一个数组,然后将其放置在舞台上,但 nada。我似乎无法解决这个问题。有任何想法吗?
我有一个小项目,要求我创建一个按钮,该按钮将随机将库中的对象放置到舞台上。我了解如何使用按钮将预定义项目从库中放置到舞台,以及如何使用 for 循环将对象的新实例推入其中,但我不知道如何创建、设置随机坐标和放置孩子走上舞台。
我会发布我拥有的代码,但它甚至一点都不起作用。我尝试使用 getDefinitionByName 并将其推入一个数组,然后将其放置在舞台上,但 nada。我似乎无法解决这个问题。有任何想法吗?
我从来没有使用过 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
您的库对象替换我的通用实例化并将其全部放入一个循环中(我可以假设您知道该怎么做,或者至少谷歌可以弄清楚)
如果您知道如何将对象添加到您的舞台上,那么它就没有更多的科学依据了。
//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);
}