| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > ActionScript 3 > Доступ к root |
| Автор: VingradFan 26.6.2011, 17:55 | ||
| Здравствуйте. Перехожу с АС2 на АС3 со скрипом, поэтому прошу не пинать ногами. Как сделать так, чтобы экземпляр класса, объявленный в root, создавал в нем мувиклип? Спасибо большое!
Класс BallSimple - наследник MovieClip |
| Автор: VingradFan 27.6.2011, 10:45 |
| ОМГ 50+ просмотров - 0 ответов!!! Как из экземпляра импортированного класса обратиться к таймлайну???? |
| Автор: SoWa 27.6.2011, 16:12 |
| В таймлайне у тебя создан экземпляр Ball, так? В экземпляре Ball создается экземпляр BallSimple. Если оба наследуются от того-же MovieClip, то в Ball пиши что-то типа this.addChild(mainBall) В таймлайне пиши addChild(ballObject), где ballObject - экземпляр класса Ball. Изнутри ты сможешь получить, только если в конструкторе передашь this(по сути - root). |
| Автор: VingradFan 27.6.2011, 16:22 | ||||||
| SoWa, спасибо за ответ. Я сам дошел до вот таких костылей, я так понял, ты их и предлагаешь. класс:
таймлайн:
Но это ведь не труъ подход. Мне казалось, труъ подход - это когда я создаю экземпляр класса и он сам все делает без добавления детей в таймлайн. Что-то вроде
и ХОП! на таймлайне шарик, который сам знает, как себя двигать по сцене, как реагировать на нажатия итд var ballTwo=new Ball(); и еще один. Или я ошибаюсь? |
| Автор: VingradFan 27.6.2011, 16:37 | ||||
| SoWa, я понял твою мысль из последнего абзаца! Спасибо! Получилось как-то так: Класс:
Таймлайн:
Тоесть, я передаю ссылку на таймлайн в парамере конструктора. Так? То, что я и хотел. Экземпляр класса сам добавляет шарик на таймлайн. В итоге, какой подход лучше????? |
| Автор: SoWa 28.6.2011, 05:31 |
| Я рад, что у тебя получилось реализовать оба подхода ) С точки зрения архитектуры программы - первый лучше. Т.е. твоим шариком должна управлять некая логика. Сам по себе шарик логикой не обладает. Это из концепции MVC и здравого смысла. Например, логика может быть заложена в поле для шариков. Что касается второго подхода - со ссылкой на this - я еще не исследовал, что там получается по поглощению памяти... Мне второй подход не нравится как технически, так и эстетически. Но если ты всеж желаешь, чтобы шарик сам собой управлял - оставляй второй. Только потестируй, загони на таймлайн 500 шариков и посмотри на ресурсы приложения. |
| Автор: VingradFan 28.6.2011, 12:39 |
| Во втором варианте получилось так: 100 экземаляров класса кушают 12 MB памяти. Это много или мало? |
| Автор: SoWa 28.6.2011, 17:25 |
| Это нормально. Я узнал, ссылки передаются - с памятью проблем не возникнет. В общем, делай как тебе удобно |