![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2009
Сообщений: 14
|
во флешку устанавливал прелоадер, код as3 не мой. суть в том что несовсем ясно зачем в конце кода идет обращение к функции main. ведь и без нее после загрузки, отличной отработки прелоудера флеш перейдет к 3 кадру, а что поместить в этот 3 кадр каждый решает сам.
package { import flash.display.MovieClip; import flash.events.Event; import flash.events.ProgressEvent; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; public class GamePreloader extends MovieClip { public static const ENTRY_FRAME:Number=3; public static const DOCUMENT_CLASS:String='GameApp'; private var preloader:MovieClip; public function GamePreloader() { stage.align=StageAlign.TOP_LEFT; stage.scaleMode=StageScaleMode.NO_SCALE; stop(); preloader=getChildByName('mcPreloader') as MovieClip; loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loaderInfo.addEventListener(Event.COMPLETE, completeHandler); } private function progressHandler(event:ProgressEvent):void { var loaded:uint = event.bytesLoaded; var total:uint = event.bytesTotal; var p:int=int((loaded/total)*100+1); preloader.gotoAndStop(p); preloader["pr"].text=(p-1)+'%'; } private function completeHandler(event:Event):void { play(); addEventListener(Event.ENTER_FRAME, enterFrameHandler); } private function enterFrameHandler(event:Event):void { if (currentFrame >= ENTRY_FRAME) { removeEventListener(Event.ENTER_FRAME, enterFrameHandler); stop(); main(); } } private function main():void { var programClass:Class = loaderInfo.applicationDomain.getDefinition(DOCUMENT_CLASS) as Class; var program:Sprite = new programClass() as Sprite; addChild(program); } } } |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Просто этот прелоадер не для мультика придумали)) Если дальше с третьего кадра идет просто анимация - то вопросов нет, убирайте стоп и мейн, и вперед. Но судя по названию класса, этот прелоадер писали для игры, а не для мультфильма.
__________________
Reality.getBounds(this); |
|
|||||
|
[+1.3 27.09.09]
Регистрация: Jul 2009
Сообщений: 42
|
А я вот всё не понимаю, некоторые моменты.
Вот например как сделать прелоадер если у меня большинство файлов грузиться из вне. Их надо все загружать во второй кард? Как вообще идёт код в AS 3. Например сначала идёт конструктор основного класса, потом всё от событий. А если мы перешли на второй кард, и там ещё какой-то код написан, во вкладке действия. То вообще путаница начинается. Как код идёт когда у мувика несколько кадров? Добавлено через 1 час 11 минут Я использую CS 3 и там нет функции загружать во второй кадр, есть только загружать в первый кард. Как более грамотно всё скинуть во второй кадр? |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 14
|
Wolsh, т.е. я правильно понял: в случае игры main - это основной класс игры?
|
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
main - это метод. Функция. Основной класс - GameApp. И вот чтобы его создать в прелоадере (который в 1-м кадре), а сам класс GameApp был не в 1-м кадре пишут такую штуку. В CS 3 всё запущено, в CS4 даже лучше, там есть экспорт во 2-й фрейм - http://etcs.ru/blog/as1/export_in_se...ame_flash_cs3/ тут подробнее.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|