Цитата:
Сообщение от Wolsh
Ничего странного. Эта запись, frameq, говорит компилятору что данный библиотечный класс будет использоваться, то есть фактически Вы его импортируете (умный компилятор не импортирует классы, которые не используются в коде, даже если Вы напишите руками импорт; использование через getDefinitionByName компилятором не распознается, так как там используется не класс, а только строка с его именем).
Вообще-то эта строка говорит "я — кадр мувиклипа класса Прелоадер". Однако же Прелоадер должен быть точкой входа в программу, нет? А так — Точка входа не может быть частью чего-то бОльшего, например кадром мувиклипа. Документ-класс включает в себя всё остальное. Здесь фишка лишь в том, чтобы "всё остальное" не грузилось в первый кадр.
Компилятор(!) должен был ошибку выдавать, то есть дело не должно было дойти до свф-файла. Включите строгий режим компиляции. А впрочем, у Вас наверное и сам класс Прелоадер не вкомпиливался, так как классом документа был другой, и Прелоадер в нем уже не упоминался, то есть был "не нужным" и компилятор его даже не смотрел.
|
Вот теперь хоть понятно что делает строчка frameq и тег Frame.
А вот когда дело начало до прелоадера доходить, то компилятор все ошибки показал).
И когда я говорил, что нашел причину и якобы решил проблему, то видимо я рано сделал выводы). У меня есть класс frame, и класс preloader. preloader документ-класс. Он по-идее должен выполнится первым, а в итоге его содержимое появляться только после загрузки frame. Т.е. как Вы я так понял и говорили: 'Здесь фишка лишь в том, чтобы "всё остальное" не грузилось в первый кадр'.
Если ещё кому-то не надоело отвечать на мои вопросы, то надеюсь кто-то скажет, как не дать загрузить frame раньше, чем само содержимое документ-класса).
frame

Код AS3:
[Frame(factoryClass = "preloader")]
public class frameq extends MovieClip {
var BG = new bg();
public function frameq() {
addChild(BG);
BG.x = 0;
BG.y = 0;
}
preloader

Код AS3:
public class preloader extends MovieClip
{
private var BTN:MovieClip = new btn();
public function preloader() {
addChild(BTN);
BTN.x = 300;
BTN.y = 300;
BTN.addEventListener(MouseEvent.CLICK, clickb);
}
function clickb(e:MouseEvent):void {
frameq
var mainClass:Class = getDefinitionByName("frameq") as Class;
var mainC = new mainClass();
addChild(mainC as DisplayObject);
}
}