Я только начинаю заниматься программированием флеш-игр. Я знаю достаточно, чтобы создать функционирующий проект, но не как сделать его эффективным или выполнять конкретные задачи, в этом случае, как добавить прелоадер. Я нашел несколько обучающих онлайн, но ни один из них не соответствует тому, как я видел, это лучший способ программирования. Из того, что я видел, лучше всего запрограммировать весь мой код в один файл .as и связать этот файл с основным документом. Это облегчает для меня, чтобы все мои переменные были глобальными по объему, что позволяет мне addChild/removeChild в различных различных функциях. Единственная проблема заключается в том, что я не могу найти учебник по созданию прелоадера с этим методом. Все обучающие программы, которые я нашел, обычно имеют два кадра на временной шкале: один с предварительным загрузчиком и один с контентом, но мне сказали, что это не очень хороший способ программирования. Если бы кто-нибудь мог помочь, я бы очень его оценил. Я могу вставить исходный код одного из моих учебных проектов, если это поможет дать ответ на мой вопрос.Как создать предварительный загрузчик во флеш-игре
ответ
Я бы не пошел с подходом 2 кадра. Вместо этого просто сделайте свою игру с вашим классом документов, как вы сказали, что хотите сделать.
Затем, когда вы закончите, загрузите свою скомпилированную игру swf в swf загрузчика.
Вот простой пример того, как ваш loaderSwf должен выглядеть следующим образом:
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;
function startLoad()
{
var mLoader:Loader = new Loader();//Or use ProLoader
var mRequest:URLRequest = new URLRequest(“Game.swf”);
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
mLoader.load(mRequest);
}
function onCompleteHandler(loadEvent:Event)
{
addChild(loadEvent.currentTarget.content);
}
function onProgressHandler(mProgress:ProgressEvent)
{
var percent:Number = mProgress.bytesLoaded/mProgress.bytesTotal;
trace(percent);
}
startLoad();
(должно быть wraped в пакете и классе, если вы используете его в качестве класса документа)
Это решение было бы возможно, если бы мне не нужно было хранить все в одном файле для целей флэш-портала. Если вы хотите посмотреть на веб-сайт, который я разместил в комментарии по основному вопросу, он использует несколько фреймов, но он работает так же, как и работа, и большая часть кода по-прежнему находится в .as-файлах. Я проверю, работает ли это, когда у меня есть свободное время. –
Если вы хотите сделать preloader, вы либо * имеете *, чтобы сделать 2 кадра, и экспортируете все свои ресурсы в кадр 2 (параметр в настройках файла) или поместите свои активы во внешний файл и загрузите их. – Marty
Если у вас есть [этот класс] (https://github.com/MartyWallace/Lotus/blob/master/Lotus/lotus/base/Game.as) в движке, который я сделал для игр AS3, вы я увижу, что я даже вынуждаю требование 2 кадров на MainTimeline. – Marty
Привет, так, например, у меня есть весь мой код и все, что я использую в файле .as. Могу ли я сохранить все то же самое и просто добавить код для предварительного загрузчика и изменить параметр для экспорта активов на фрейм 2? Если да, можете ли вы предложить хороший учебник о том, как реализовать прелоадер с помощью этого метода? –