Из as2 в as3

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Abdul-Ibn-Abusheih
ЗАБАНЕН!
Сообщения: 430
Зарегистрирован: 02 мар 2012, 19:15

Из as2 в as3

Сообщение Abdul-Ibn-Abusheih »

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

w.white.duplicateMovieClip("white"+w_n,w_n) 
как это сделать на as3
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Из as2 в as3

Сообщение Alazaur »

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

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

addChild(new White()).name = "white"+i; //Где i - некий индекс, например генерируемый в цикле, для уникальности имени этой копии.
Abdul-Ibn-Abusheih
ЗАБАНЕН!
Сообщения: 430
Зарегистрирован: 02 мар 2012, 19:15

Re: Из as2 в as3

Сообщение Abdul-Ibn-Abusheih »

что то не клонирует..
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Из as2 в as3

Сообщение 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 копий. Если не получится отпиши исходник скину, чтоб наглядно посмотрел.
Abdul-Ibn-Abusheih
ЗАБАНЕН!
Сообщения: 430
Зарегистрирован: 02 мар 2012, 19:15

Re: Из as2 в as3

Сообщение Abdul-Ibn-Abusheih »

от смотри. Создаешь клип, при создании в открывшемся окне ставишь галочку "Экспорт для ActionScript" ниже поле "класс" становится активным, в него вписываешь например MyMovie
это то я знаю=)
Abdul-Ibn-Abusheih
ЗАБАНЕН!
Сообщения: 430
Зарегистрирован: 02 мар 2012, 19:15

Re: Из as2 в as3

Сообщение Abdul-Ibn-Abusheih »

Вот сейчас заработало, как я и думал. Я просто не знал как задать координаты для нового мувика, всяко пробовал, но не знал про getChildByName.

Спасибо за помощь!
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Из as2 в as3

Сообщение Alazaur »

Не за что:)
Abdul-Ibn-Abusheih писал(а): это то я знаю=)
Та я догадался что ты знаешь, это я для тех кто будет в будущем читать если столкнется с подобной проблемой.
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Из as2 в as3

Сообщение 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]);} 
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Из as2 в as3

Сообщение Alazaur »

sanych_dv, а смысл? Создание лишней глобальной переменной и требования к обнуению ссылок потом, для очистки памяти. А по имени милое дело и доступ в любой части программы к мувику без переменных и при удалении написал removeChild(getChildByName()) и забыл про него.
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Из as2 в as3

Сообщение 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 автоматом пошел по этому пути, но, к счастью, вовремя отказался. При организации в проекте правильных перекрестных ссылок на классы никаких проблем к обращении к объекту из любой части кода нет.

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