Если ваш предварительный загрузчик появляется только после загрузки файла, это означает, что у вас все еще есть другие объекты, связанные с фреймом 1. Вспышка очень разборчива по этому поводу и легко перемещать вещи на фрейм 1 независимо от ваших настроек. Когда вы компилируете, Flash строит график зависимостей, чтобы определить, какие элементы необходимы для каждого фрейма. Если он считает, что актив необходим раньше, чем параметр экспорта фрейма, он игнорирует настройку и переносит актив на этот фрейм. В частности, любого класса, ваш класс документа непосредственно ссылки будут автоматически рывок на кадре 1.
Проверки «Сформировать отчет о размере» в файле, Настройка публикации, Flash может помочь вам увидеть, сколько данных экспортируются на рам 1. Вот несколько советов, чтобы убедиться, что все взаимосвязано на телосложении:
- в Publish Settings, Flash, ActionScript Параметры, убедитесь, что «Экспорт кадров для классов» установлен в 2 или выше.
- Убедитесь, что символы библиотеки говорят «Экспорт по кадру 2» в их свойствах связи. Старые версии Flash могут экспортировать их в кадр 1, независимо от рамки экспорта класса. В этом случае вам нужно будет выполнить метод oldschool для снятия флажка «Экспортировать по кадру 1» и вручную перетащить эти символы на временную шкалу в кадре 2.
- Не ссылайтесь непосредственно на классы из класса документа или на основной временной шкале. Класс Document и все его ссылки всегда помещаются в кадр 1. Каждый раз, когда вы делаете
var f : MyClass;
в своем классе документа или на временной шкале корня, вы ссылаетесь на MyClass
, а Flash автоматически выдергивает его на фрейм 1.
чтобы избежать непосредственно вашего главного класса приложения в вашем прелоадере, вы хотите создать его экземпляр косвенно, используя что-то вроде этого:
var gameClass : Class = flash.utils.getDefinitionByName("Game") as Class;
var game : Sprite = new gameClass();
в этом случае ваш Preloader становится класс документа, и косвенно создает игру класс при загрузке SWF. Это позволяет избежать прямых ссылок на Game и его содержимое.
Вы уверены, что остановились в кадре 1 и продолжаете только раз все загружается? в противном случае, если вы перейдете к следующим кадрам, все остальное начнет загружаться также – scibuff
Да. В моем основном классе конструктор имеет stop(); в нем и в функции, которую он вызывает, когда событие загрузки завершено, он gotoAndStop (2); – Harold