1

所以我在屏幕左下角有一个名为 world 的影片剪辑,它假设“生成”所有块影片剪辑以填满屏幕。块动画剪辑称为块,仅存在于库中。worldWidth、blockSize 和 worldHeight 只是数字。

通常,在 AS2 中我可以这样做:

for (var x = 1; x <= blockWidth; x++) {
    for (var y = 1; y <= blockHeight; y++) {
        temp = world.attachMovie("block","bX" + x + "Y" + y, world.getNextHighestDepth());
        temp._x = x*blockSize-blockSize/2;
        temp._y = -y*blockSize+blockSize/2;
    }
}

一切都会完美的..

但我正在使用 adobe air for android 并且 AS3 是强制的。AS3 缺少“attachMovie()”函数。我一直在寻找解决方案,但它们对我来说太具体了,我无法理解。

有任何想法吗?

更新:

我尝试使用提供的答案开始此操作,这就是我所拥有的:

stop();
import flash.display.MovieClip;
var blockSize:Number = 32;
var worldWidth:Number = 800/blockSize;
var worldHeight:Number = 480/blockSize;
render();
function render(){
       for (var x = 1; x<=worldWidth; x++) {
        for (var y = 1; y<=worldHeight; y++) {
            var Block = new block();
            Block.name = "BX" + x + "Y" + y;
            Block.x = x*blockSize-blockSize/2;
            Block.y = -y*blockSize+blockSize/2;
            Block.gotoAndStop(3);
            world.addChild(Block);
        }
    }
}

不幸的是,屏幕不断闪烁。我不知道为什么。

编辑:真是愚蠢的错误,我忘了 stop() 块 MovieClip 内的帧。

问题解答,问题解决!

4

1 回答 1

0

进入库项目的属性并设置您想要的类名(例如“块”)以将其导出为。

然后你可以像这样创建一个新块:

var block = new Block();
block.x = 20;
block.y = 5;
world.addChild(block);

通过 addChild() 添加的任何 DisplayObject 将始终放在顶层。

由于您是 AS3 的新手。您需要了解DisplayObject 类的方法,任何 MovieClip 或 Sprite(没有任何时间线的 mc)都继承了这些方法。

于 2013-10-17T01:13:00.807 回答