Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как программно создать копии MovieClip'а? (http://www.flasher.ru/forum/showthread.php?t=165641)

linkoln 25.08.2011 10:17

Как программно создать копии MovieClip'а?
 
Здравствуйте!
Допустим мы создали клип "square"... Как в цикле создать несколько экземпляров этого клипа и разместить их на сцене?

goodguy 25.08.2011 10:23

Код AS3:

for (var i:int = 0; i < 5; i++) {        // создаст 5 экземпляров клипа
      var s:square = new square();
      stage.addChild(s);
}

При условии, что в его свойствах стоит галка export for actionscript и класс назван square

linkoln 25.08.2011 11:34

Спасибо!

linkoln 25.08.2011 12:32

Да, вот только все эти клипы имеют одно имя - s, а как создать экземпляры с разными именами(s0,s1,s2...) чтобы к ним был доступ после их создания? А так если вне цикла попробовать изменить координаты доступен только последний создавшийся клип...

ChuwY 25.08.2011 12:48

Или вот так:
Код AS3:

for(var i : int = 0; i < 5; i++){
        var clipClass : Class = Object(square).constructor;
        var newSquare : MovieClip = new clipClass();
        addChild(newSquare);
        newSquare.x = i*newSquare.width;
}

При условии, что в его свойствах стоит галка export for actionscript, но названия конкретного класса мы не знаем.

ps. опоздал

cleptoman 25.08.2011 13:01

s - это не имя..имя у мувиков задается в специальном свойстве name.

ЗлОй ПрОграММер 25.08.2011 13:05

Добавляйте созданные мувики в массив потом через него будете к ним обращаться
Код AS3:

var MovieClips: Array = new Array();
for (var i:int = 0; i < 5; i++) {        // создаст 5 экземпляров клипа
      var s:square = new square();
      stage.addChild(s);
      MovieClips.Push(s);
}
MovieClips[0].x = 34;
MovieClips[1].y = 56;

sorry за то что украл часть кода у Goodguy))

toFL 25.08.2011 13:11

Код AS3:

var MovieClips: Array = new Array();
var movieClips: Array = new Array();

имена переменных принято называть с маленькой буквы.
Код AS3:

MovieClips.Push(s);
movieClips.push(s);


ЗлОй ПрОграММер 25.08.2011 13:14

а я глобальные переменные называю с большой буквы а локальные с маленькой, по мне так это удобно)

toFL 25.08.2011 13:16

Цитата:

а я глобальные переменные называю с большой буквы а локальные с маленькой, по мне так это удобно)
Хозяин - барин. Но обычно так не делают. Используют маленькую букву для public и _ для private. С большой буквы только классы и интерфейсы.


Часовой пояс GMT +4, время: 01:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.