Здравствуйте.
У меня в основном проекте это не выходит сделать. Проект начинается с анимации заставки и в 178 кадре останавливается. В этом кадре во Flash нарисованы кнопки. Они раньше не появлялись. У меня не завершалось выполнение конструктора класса документа. Сейчас я код так организовал, что кнопки стали появляться, но они не работают. Там получается ошибка времени выполнения. Экземпляр кнопки на момент обращения к нему равен null. Прослушиватель события и обработчик написаны в классе документа. Если их код написать в кадре, где останавливается воспроизведение, то работает, но я хочу понять как это сделать в основном классе. Почему не работает? Я даже специально маленький проект еще сделал, чтобы на нем потренироваться. В принципе по нему должно быть понятно.
К примеру я использую вот такой документ класс:
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
public class ObjectExample extends MovieClip
{
public function ObjectExample()
{
addEventListener(Event.ADDED_TO_STAGE, addedResponse);
}
private function addedResponse(e:Event)
{
removeEventListener(Event.ADDED_TO_STAGE, addedResponse);
box.addEventListener(MouseEvent.CLICK, clickResponse);
}
private function clickResponse(e:Event)
{
trace("Нажато");
}
}
}
Сам мини проект это 10 пустых кадров, только кнопка в 8м кадре. и еще stop(); вызывается тоже в 8 кадре.
Есть привязка Символа кнопки к AS.
Вообще если проект состоит только из одного кадра или эту кнопку поместить в первый кадр, то ошибки не происходит, правда во втором случае кнопка все равно не работает.
Можно конечно размещать все только программно, но это как-то не то совсем. Для чего редактор тогда. Я вообще actionscript изучал, но я совсем не понимаю в какое именно место класса документа Flash вставляет код. когда он написан в самих кадрах. Тот же stop(). Вот куда? Почему нельзя просто увидеть весь получаемый код? Объект класса документа Flash Player тоже сам создает. Про конструктор уже рассказывал.
Спасибо.