![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Feb 2011
Сообщений: 100
|
Дело происходит в Flash CS5. Добавляю на сцену во второй кадр символ CarClip, пишу ему имя _carClip, ставлю в опциях "импорт в скрипт", "импорт во второй кадр". В коде пытаюсь присвоить ссылку на него в поле одного из классов, конкретно код такой:
class Game extends MovieClip { public var carClip: CarClip; public function Game() { this.carClip = _carClip; //_carClip это имя объекта на сцене, который мы по идее видим } } Для полноты картины надо добавить, что Game я создаю тоже во 2-м кадре, вот код главного класса документа: class Main extends MovieClip { public function start(): void { gotoAndStop(2); new Game(); } } Но при таком написании флеш считает carClip внутренним полем объекта и присваивает его сам себе. Есть возможность как-то указать что это внешний объект? |
|
|||||
|
strange mood
|
1. В настройках AS3 снимите галку "Automatically declare stage instances", и никогда больше не ставьте. В будущем избавит от подобных проблем.
2. Метод Main.start() не выполнится автоматически. Вы наверняка хотели сделать его конструктором и назвать Main. 3. Прочтите документацию по DisplayObjectContainer.getChildByName 4. Почитайте про области видимости переменных в AS3 После этого вы поймете, что нужно исправить, и почему сейчас флэш так себя ведет.
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 100
|
Ну про это вопроса небыло, я просто только кусок класса привёл, чтобы в лишнем коде не пришлось разбираться, там start() во 2-м кадре вызываться должен. По остальным ответам - спасибо, ушёл разбираться!
|
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Цитата:
__________________
Отряд Котовскага |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|