Добавление нескольких экземпляров одного и того же объекта - PullRequest
0 голосов
/ 10 января 2019

Добавление нескольких экземпляров одного и того же объекта Мувиклип исчезает из первого объекта, потому что имя экземпляра Всегда одно и то же решение

var mc1:Mc1=new Mc1();
var mc2:Mc2=new Mc2();


var ar:Array=new Array();

function fun(){
var i = 0;
while (i < ar.length) {
ar[i].width=864;
ar[i].height=651;
ar[i].x=200;
ar[i].y=200;	
ar[i].visible=false;		
addChild(ar[i]);
i++;	
}
TweenMax.staggerTo(ar,0, {visible:true},0.120);
}

button1.addEventListener(MouseEvent.CLICK,f1);
function f1(e:Event):void{
ar.push(mc1);//
}
button2.addEventListener(MouseEvent.CLICK,f2);
function f2(e:Event):void{
ar.push(mc2);
}
button3.addEventListener(MouseEvent.CLICK,f3);
function f3(e:Event):void{
ar.push(mc1);//
}
button4.addEventListener(MouseEvent.CLICK,f4);
function f4(e:Event):void{
fun();
}

1 Ответ

0 голосов
/ 10 января 2019

вы только когда-либо создавали два экземпляра, один из которых Mc1 и один из Mc2 в самом верху вашего кода. Если вы не видите слово new, вы не создаете никаких новых экземпляров.

То, что вы, вероятно, хотите сделать, это сохранить класс в массиве, а затем в цикле while создать новый экземпляр этого класса.

  1. Измените места, куда вы нажимаете массив, чтобы выдвинуть имя класса, а не экземпляры:

    ar.push(Mc1);  //instead of ar.push(mc1)
    
  2. Удалить эти экземпляры наверху

    //remove these two lines
    var mc1:Mc1=new Mc1();
    var mc2:Mc2=new Mc2();
    
  3. Измените цикл while, чтобы создать новый экземпляр класса в массиве

    var obj:MovieClip; //create a var to store your Mc objects in the loop below
    var i:int = 0;
    while (i < ar.length) {
        obj = new ar[i](); //this instantiates the class stored in the array at index i
        obj.width=864;
        obj.height=651;
        obj.x=200;
        obj.y=200;  
        obj.visible=false;      
        addChild(obj);
        i++;    
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...