AS3 не может получить доступ к MC на сцене - PullRequest
0 голосов
/ 15 марта 2012

У меня 54 MC на сцене, генерируется динамически. Теперь я хочу получить их x и y позиции при переворачивании, но у меня проблемы с получением правильного пути, например,

function copyFlightCellData():void {

var r; var s; 
var cellData:Array = new Array ();
for (r = 0; r < 54; r++){
    //var copyCellData = new MovieClip();
    cellData[r] = Object(root).mc85.name; //["mc"+r+r];
    trace("$$$$$$$$$$$$$$$$$$$$$" + cellData[r]);
}

}

Я использовал список объектов в отладке, и они перечислены в _level0, например.

Видеоклип: кадр = 1 цель = "_ level0.mc85"

Не уверен, почему я не могу получить доступ к их свойствам.

Это код, который создал MC

        // Create copies of flightCell for board grid
        var my_mc = new flightCell();
        my_mc.name = "mc" + i + j;
        trace("^^^^^^^^^^^^^^****************" + my_mc.name);
        addChild(my_mc);

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Ответ довольно прост, используйте объект DisplayObjectContainer, в данном случае метод root, getChildByName(), например:

var sprite1:Sprite = new Sprite();
sprite1.name = "sprite1";
addChild(sprite1);
trace((root as DisplayObjectContainer).getChildByName("sprite1").name); // output : sprite1

Вероятно, лучше хранить видеоклипы, которые у вас естьна вашем этапе в массиве для начала.

0 голосов
/ 15 марта 2012

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

mc85.name = "mc85";

В качестве альтернативы, которую я рекомендую, вы можете использовать getChildAt(index): http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6#getChildAt()

Кроме того, я настоятельно рекомендую вам создать пустой мувиклип или спрайт и добавить к ним все эти mcs вместо корневого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...