所以我在屏幕的左下方有一个名为world的movieclip,它假设“生成”所有块动画片段以填充屏幕。块movieclip称为块,仅存在于库中。 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);
}
}
}
不幸的是,屏幕不断闪烁。我不知道为什么。
编辑:真的很傻,我忘了停止()块MovieClip中的帧。问题回答,问题解决了!
答案 0 :(得分:0)
进入库项目的属性并设置所需的类名(例如“阻止”)以将其导出为。
然后你可以像这样制作一个新的块:
var block = new Block();
block.x = 20;
block.y = 5;
world.addChild(block);
通过addChild()添加的任何DisplayObject将始终放在顶层。
因为你是AS3的新手。您将要学习DisplayObject class任何MovieClip或Sprite(没有任何时间轴的mc)继承这些方法的方法。