2013-06-26 3 views
1

Я только начинаю заниматься программированием флеш-игр. Я знаю достаточно, чтобы создать функционирующий проект, но не как сделать его эффективным или выполнять конкретные задачи, в этом случае, как добавить прелоадер. Я нашел несколько обучающих онлайн, но ни один из них не соответствует тому, как я видел, это лучший способ программирования. Из того, что я видел, лучше всего запрограммировать весь мой код в один файл .as и связать этот файл с основным документом. Это облегчает для меня, чтобы все мои переменные были глобальными по объему, что позволяет мне addChild/removeChild в различных различных функциях. Единственная проблема заключается в том, что я не могу найти учебник по созданию прелоадера с этим методом. Все обучающие программы, которые я нашел, обычно имеют два кадра на временной шкале: один с предварительным загрузчиком и один с контентом, но мне сказали, что это не очень хороший способ программирования. Если бы кто-нибудь мог помочь, я бы очень его оценил. Я могу вставить исходный код одного из моих учебных проектов, если это поможет дать ответ на мой вопрос.Как создать предварительный загрузчик во флеш-игре

+1

Если вы хотите сделать preloader, вы либо * имеете *, чтобы сделать 2 кадра, и экспортируете все свои ресурсы в кадр 2 (параметр в настройках файла) или поместите свои активы во внешний файл и загрузите их. – Marty

+1

Если у вас есть [этот класс] (https://github.com/MartyWallace/Lotus/blob/master/Lotus/lotus/base/Game.as) в движке, который я сделал для игр AS3, вы я увижу, что я даже вынуждаю требование 2 кадров на MainTimeline. – Marty

+0

Привет, так, например, у меня есть весь мой код и все, что я использую в файле .as. Могу ли я сохранить все то же самое и просто добавить код для предварительного загрузчика и изменить параметр для экспорта активов на фрейм 2? Если да, можете ли вы предложить хороший учебник о том, как реализовать прелоадер с помощью этого метода? –

ответ

0

Я бы не пошел с подходом 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 в пакете и классе, если вы используете его в качестве класса документа)

+0

Это решение было бы возможно, если бы мне не нужно было хранить все в одном файле для целей флэш-портала. Если вы хотите посмотреть на веб-сайт, который я разместил в комментарии по основному вопросу, он использует несколько фреймов, но он работает так же, как и работа, и большая часть кода по-прежнему находится в .as-файлах. Я проверю, работает ли это, когда у меня есть свободное время. –