|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
Мультикадровый мувиклип: обращение к клипам кадров
Вот тоже непонятная засада.
В библиотеке Flash IDE оздан многокадровый мувиклип. У него 10 кадров. В каждом кадре расположено по одному мувиклипу. В поле Instance Name каждого такого мувиклипа прописано: mc_1, mc_2, mc_3... mc10. И теперь в одной из функций Класса имеем примерно вот такой код: var currName:String; gotoAndStop(currFrame); //currFrame содержит номер кадра клипа-родителя. currName = "mc_" + String(currFrame); currClip = this.getChildByName(currName) as MovieClip; //currClip - ссылка на вложенный клип. trace("TEST: currClip = ", currClip, " name = ", currClip.name); Цитата:
Цитата:
И получается, я могу получить ссылку на клип первого фрэйма, но при получении ссылок на клипы последующих фрэймов они равны null. Странно, что я делаю не так? Или может в мультифрэймовом доступе есть некая специфика? |
|
|||||
Регистрация: Oct 2010
Сообщений: 85
|
Если я не ошибаюсь, то для доступа к свойствам объекта, все они должны находиться на первом кадре. Попробуйте.
Почему вы используете такой подход? из библиотеки нет возможности мувики брать? |
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
BornTOFree,
Цитата:
И кстати, может быть в этом и состоит смысл галочки Linkage: Export in first frame. Цитата:
Вот я и подумал такой вариант испытать. Но тут свои проблемы... Так что наверное придется, да, из массива брать клипы, через аддчайлд, ремувчайлд, и т.п. silin, Цитата:
Вероятно у вас CS5 или вроде того. Может, кстати, это именно баг старых версий флэша. |
|
|||||
упс, персохранил, а не проверил..
>> Может, кстати, это именно баг старых версий флэша. действительно: при компиляции под 9ю версию - описанный вами баг, под 10ю - все норм зы: имо, в любом случае, такой подход никакой простоты\удобства не дает, нет смысла с ним возится Добавлено через 9 минут обойти можно, обращаясь к клипам в следующем такте enterFrame, например так (применительно к моему примеру) package { import flash.display.MovieClip; import flash.utils.setTimeout; public class Symbol1 extends MovieClip { public function Symbol1() { test(1); test(2); test(3); } private function test(currFrame:int):void { gotoAndStop(currFrame); setTimeout(delayedTest, 20); } private function delayedTest():void { var currName:String = "mc_" + String(currentFrame); var currClip:MovieClip = this.getChildByName(currName) as MovieClip; //currClip - ссылка на вложенный клип. trace("TEST: currClip = ", currClip, " name = ", currClip.name); } } } |
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
silin, большое спасибо за прояснение версионности бага.
Говорил мне Wolsh выбросить cs3, а я вот тут всё... ; ) Сейчас попробую ваш пример адаптировать к моему случаю. Кстати, погуглил немного и нашёл вот такую тему, вероятно, может быть связана с техникой обхода этого бага. Добавлено через 1 час 41 минуту UPD: Погонял с delay, всё работает, спасибо. Правда пару раз словил null-ошибку при быстром переключении фрэймов. Поставил время задержки чуть выше чем FrameRate, и, похоже, это решило вопрос. Добавлено через 4 часа 30 минут UPD2 Однако, бывают null-баги и при чуть завышенных значениях делэй. Но чем выше делэй, тем вероятность меньше. Но тогда больше вероятность дерганий в начальной фазе анимации клипа. Так что да, похоже лучший подход это массив с клипами. Последний раз редактировалось Fogflasher; 07.04.2014 в 10:40. |
Часовой пояс GMT +4, время: 18:31. |
|
« Предыдущая тема | Следующая тема » |
Теги |
multiframe movieclip , многокадровый доступ |
Опции темы | |
Опции просмотра | |
|
|