PDA

Просмотр полной версии : Случайная позиция клипа по иксу


КорДум
06.03.2010, 01:39
Здравствуйте. Недавно только пересел на AS3.0, как пришла книжка под авторством Колина Мука. Вечерами за изучением и как вывод - что-то такое простенькое сделать уже могу. Но вот наткнулся на проблему:
даны два класса - один главный, второй для клипа, что берется из библиотеки. Ничего сверхъестественного - просто вставляется клип на рандомную позицию по иксу. Позиция определяется при создании в классе клипа вот такой строчкой: this.x = Math.random() * stage.stageWidth;
При компиляции выдает такую странную ошибку:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at clip()
at main()

Подскажите, пожалуйста, что я делаю не так? Прикладываю к теме архив со всем нужным.

mayakwd
06.03.2010, 02:11
stage у клипа появляется только после того как он добавлен на сцену.
используйте либо событие Event.ADDED_TO_STAGE либо вынесите всю инициализацию в другую функцию и выполняйте её после добавления клипа на сцену.

КорДум
06.03.2010, 02:37
Event.ADDED_TO_STAGE никак же не пропихнуть в класс клипа, только выносить в основной?

mayakwd
06.03.2010, 03:35
в конструкторе пишите:
super();
addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);

следом слушателя
private function addedToStageHandler(event : Event) : void {
trace(stage);
}

КорДум
06.03.2010, 13:26
Спасибо. Хм, теперь выдает вот такое:
1180: Call to a possibly undefined method addListener.

etc
06.03.2010, 14:50
Спасибо. Хм, теперь выдает вот такое:
1180: Call to a possibly undefined method addListener.

Потому что вы невнимательно пишете код.

Obi
06.03.2010, 14:51
Спасибо. Хм, теперь выдает вот такое:
1180: Call to a possibly undefined method addListener.

Тут написано "Вызов возможно не существующего метода addListener". Догадываетесь к чему я веду?

КорДум
06.03.2010, 14:55
Тьфу, елки-палки! А флеш мне подсветил, вот я и не заподозрил ничего. Спасибо всем большое, теперь все работает как надо.