Actionscript 3 如何创建元素的垂直线

Actionscript 3 如何创建元素的垂直线,actionscript-3,Actionscript 3,每次前5个元素通过舞台中心时,我都会尝试创建一个垂直的元素(在本例中为5个)。 但是我所做的是为每一个通过中心的元素创建5个新的。 所以在第一个时刻,我有一个元素 当他通过中锋时,我有5个 当他们通过中心时,这5个人中的每一个我都有5个(总共25个) 但它们有相同的X和Y位置,它们叠在一起,看起来只有5个新的 当他们通过中心时,这25个人中的每一个我都有5个(比我想要的多得多(我只想要5个)),他们也太过分了 我如何在新列中只添加5个字符 到目前为止,我有以下代码: import flash.d

每次前5个元素通过舞台中心时,我都会尝试创建一个垂直的元素(在本例中为5个)。 但是我所做的是为每一个通过中心的元素创建5个新的。 所以在第一个时刻,我有一个元素

当他通过中锋时,我有5个

当他们通过中心时,这5个人中的每一个我都有5个(总共25个) 但它们有相同的X和Y位置,它们叠在一起,看起来只有5个新的

当他们通过中心时,这25个人中的每一个我都有5个(比我想要的多得多(我只想要5个)),他们也太过分了

我如何在新列中只添加5个字符

到目前为止,我有以下代码:

import flash.display.MovieClip;
import flash.events.Event;


public class Main extends MovieClip
{

    private var myVertArray:Array = new Array();

    private var _box:Box = new Box();

    public function Main()
    {
        _box.x = stage.stageWidth - _box.width;
        _box.y = stage.stageHeight - 200;
        this.addChild(_box);
        myVertArray.push(_box);
        stage.addEventListener(Event.ENTER_FRAME, onEveryFrame);
    }

    private function onEveryFrame(ev:Event):void
    {
        var _myItem:Box
        for (var i:int = 0; i < myVertArray.length; i++)
        {
            _myItem = myVertArray[i]
            _myItem.x -= 3;

            if(_myItem.x < stage.stageWidth/2 && !_myItem.passedCenter )
            {
                trace("myVertArray.length is : " + myVertArray.length)
                _myItem.passedCenter = true
                for(var j:int = 0; j < 5; j++)
                {
                    var _myNewItem:Box = new Box();
                    _myNewItem.x = stage.stageWidth - 40;
                    _myNewItem.y = stage.stageHeight - (_myNewItem.height * j)  -  (j * 5) - _myNewItem.height /2 ;
                    _myNewItem.alpha = 0.2;
                    this.addChild(_myNewItem);
                    myVertArray.push(_myNewItem)
                }
            }
        }

        if(_myItem.x < 0)
        {
            removeChild(_myItem);
            myVertArray.splice(i, 1);
        }
    }

}

您只需要为列中的一个对象提供创建新列的能力。你可以这样做

package{
import flash.display.MovieClip;
import flash.events.Event;
public class Main extends MovieClip{
    private var myVertArray:Array = new Array();
    private var _box:Box = new Box();

public function Main(){
    _box.x = stage.stageWidth - _box.width;
    _box.y = stage.stageHeight - 200;
    _box.columnMaker=true; //added property
    this.addChild(_box);
    myVertArray.push(_box);
    stage.addEventListener(Event.ENTER_FRAME, onEveryFrame);
}

private function onEveryFrame(ev:Event):void{
    var _myItem:Box
    for (var i:int = 0; i < myVertArray.length; i++){
        _myItem = myVertArray[i]
        _myItem.x -= 3;
        if(_myItem.x < stage.stageWidth/2 && !_myItem.passedCenter ){
            trace("myVertArray.length is : " + myVertArray.length)
            _myItem.passedCenter = true;
    if (_myItem.columnMaker) {//check added
        trace("createColumn");
        for(var j:int = 0; j < 5; j++){
            var _myNewItem:Box = new Box();
        _myNewItem.x = stage.stageWidth - 40;
        _myNewItem.y = stage.stageHeight - (_myNewItem.height * j)-
                                                 (j * 5) - _myNewItem.height /2;
        _myNewItem.alpha = 0.2;
        if (j==4) {
            _myNewItem.columnMaker=true;//give property to last object in
                                                    //columm
        }
        this.addChild(_myNewItem);
        myVertArray.push(_myNewItem);
        }
    }
        }
    }

    if(_myItem.x < 0){
        removeChild(_myItem);
        myVertArray.splice(i, 1);
    }
}
}
}
包{
导入flash.display.MovieClip;
导入flash.events.Event;
公共类Main扩展了MovieClip{
私有变量myVertArray:Array=new Array();
private-var_-box:box=new-box();
公共功能Main(){
_box.x=stage.stageWidth-\u box.width;
_box.y=stage.stageHeight-200;
_box.columnMaker=true;//添加了属性
此.addChild(_框);
myVertArray.push(_框);
stage.addEventListener(Event.ENTER_FRAME,onEveryFrame);
}
私有函数onEveryFrame(ev:事件):无效{
变量_myItem:框
对于(变量i:int=0;i
package{
import flash.display.MovieClip;
import flash.events.Event;
public class Main extends MovieClip{
    private var myVertArray:Array = new Array();
    private var _box:Box = new Box();

public function Main(){
    _box.x = stage.stageWidth - _box.width;
    _box.y = stage.stageHeight - 200;
    _box.columnMaker=true; //added property
    this.addChild(_box);
    myVertArray.push(_box);
    stage.addEventListener(Event.ENTER_FRAME, onEveryFrame);
}

private function onEveryFrame(ev:Event):void{
    var _myItem:Box
    for (var i:int = 0; i < myVertArray.length; i++){
        _myItem = myVertArray[i]
        _myItem.x -= 3;
        if(_myItem.x < stage.stageWidth/2 && !_myItem.passedCenter ){
            trace("myVertArray.length is : " + myVertArray.length)
            _myItem.passedCenter = true;
    if (_myItem.columnMaker) {//check added
        trace("createColumn");
        for(var j:int = 0; j < 5; j++){
            var _myNewItem:Box = new Box();
        _myNewItem.x = stage.stageWidth - 40;
        _myNewItem.y = stage.stageHeight - (_myNewItem.height * j)-
                                                 (j * 5) - _myNewItem.height /2;
        _myNewItem.alpha = 0.2;
        if (j==4) {
            _myNewItem.columnMaker=true;//give property to last object in
                                                    //columm
        }
        this.addChild(_myNewItem);
        myVertArray.push(_myNewItem);
        }
    }
        }
    }

    if(_myItem.x < 0){
        removeChild(_myItem);
        myVertArray.splice(i, 1);
    }
}
}
}