Страница 1 из 2

Из as2 в as3

Добавлено: 07 апр 2012, 14:44
Abdul-Ibn-Abusheih

Код: Выделить всё

w.white.duplicateMovieClip("white"+w_n,w_n) 
как это сделать на as3

Re: Из as2 в as3

Добавлено: 07 апр 2012, 16:37
Alazaur
Надо на мувик white навесить класс, например White. А потом просто через addChild(new White()), если добавить возможность в будущем обращаться к этому клону по имени, то так:

Код: Выделить всё

addChild(new White()).name = "white"+i; //Где i - некий индекс, например генерируемый в цикле, для уникальности имени этой копии.

Re: Из as2 в as3

Добавлено: 07 апр 2012, 22:07
Abdul-Ibn-Abusheih
что то не клонирует..

Re: Из as2 в as3

Добавлено: 07 апр 2012, 22:17
Alazaur
Abdul-Ibn-Abusheih писал(а):что то не клонирует..
Вот смотри. Создаешь клип, при создании в открывшемся окне ставишь галочку "Экспорт для ActionScript" ниже поле "класс" становится активным, в него вписываешь например MyMovie
А потом в коде пишешь

Код: Выделить всё

for(var i:int = 0; i<10; i++){   addChild(new MyMovie()).name = "mym"+i; //Создаем дубликат   getChildByName("mym"+i).x = 50 * i; // Задаем ему координату по x    getChildByName("mym"+i).y = 100; // Задаем координату по y}
Если все правильно на сцене должно появиться 10 копий. Если не получится отпиши исходник скину, чтоб наглядно посмотрел.

Re: Из as2 в as3

Добавлено: 07 апр 2012, 22:23
Abdul-Ibn-Abusheih
от смотри. Создаешь клип, при создании в открывшемся окне ставишь галочку "Экспорт для ActionScript" ниже поле "класс" становится активным, в него вписываешь например MyMovie
это то я знаю=)

Re: Из as2 в as3

Добавлено: 07 апр 2012, 22:26
Abdul-Ibn-Abusheih
Вот сейчас заработало, как я и думал. Я просто не знал как задать координаты для нового мувика, всяко пробовал, но не знал про getChildByName.

Спасибо за помощь!

Re: Из as2 в as3

Добавлено: 07 апр 2012, 22:27
Alazaur
Не за что:)
Abdul-Ibn-Abusheih писал(а): это то я знаю=)
Та я догадался что ты знаешь, это я для тех кто будет в будущем читать если столкнется с подобной проблемой.

Re: Из as2 в as3

Добавлено: 07 апр 2012, 23:22
sanych_dv
Упрощайте доступ к объектам:

Код: Выделить всё

  private var _loc:Object = { }; // .... for(var i:int = 0; i < 10; i++){_loc["mym" + i] = new MyMovie;_loc["mym" + i].x = 50 * i;_loc["mym" + i].y = 100;addChild(_loc["mym" + i]);} 

Re: Из as2 в as3

Добавлено: 07 апр 2012, 23:34
Alazaur
sanych_dv, а смысл? Создание лишней глобальной переменной и требования к обнуению ссылок потом, для очистки памяти. А по имени милое дело и доступ в любой части программы к мувику без переменных и при удалении написал removeChild(getChildByName()) и забыл про него.

Re: Из as2 в as3

Добавлено: 08 апр 2012, 00:22
sanych_dv
Alazaur писал(а):sanych_dv, а смысл? Создание лишней глобальной переменной и требования к обнуению ссылок потом, для очистки памяти. А по имени милое дело и доступ в любой части программы к мувику без переменных и при удалении написал removeChild(getChildByName()) и забыл про него.
Ну это вы как раз в стилистике AS2 и пишете (посмотрите на игру "Франкенштейн") - получается ненужное именование, нагромождение доступа к вложенным клипам:

Код: Выделить всё

  getChildByName("storage").container.getChildByName("proc" + _loc_2) // ...            if (this.fm.getChildByName("grid").getChildByName("unit" + this.flashVars["viewer_id"]).endy < this.fm.getChildByName("grid").getChildByName("unit" + this.flashVars["viewer_id"]).y)            {                this.fm.getChildByName("grid").getChildByName("unit" + this.flashVars["viewer_id"]).gotoAndPlay("goAni2");            }// ... 
Я при переходе с AS2 автоматом пошел по этому пути, но, к счастью, вовремя отказался. При организации в проекте правильных перекрестных ссылок на классы никаких проблем к обращении к объекту из любой части кода нет.

Особо доказывать ничего не собираюсь, у каждого своя стилистика кода.