Просмотр полной версии : Проблема с Preloader'ом
Появилась проблема( конечно на этом форуме мне толком никто не помог, но может в этот раз поможете ).
Суть проблемы такова: у меня есть прелоадер, когда он загружает игру он должен получить класс игры методом getDefinitionByName. Но как только он пытается вытащить класс пишет что переменная не определена...Пытался поискать ответ но толком ничего не нашел...
Где-то в коде ошибка. Код в студию.
Переназовите тему более подходяще, а то ее закроют.
package
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.utils.getDefinitionByName;
public class Preloader extends MovieClip
{
private var mainClass:Class;
public function Preloader()
{
if (this.stage == null) {
this.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
} else {
start();
}
}
private function addedToStageHandler(event:Event):void
{
this.removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
start();
}
private function start():void
{
if (this.loaderInfo.bytesLoaded == this.loaderInfo.bytesTotal) {
complete();
} else {
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
this.loaderInfo.addEventListener(Event.COMPLETE, completeHandler);
}
}
private function progressHandler(event:ProgressEvent):void
{
var total:Number = event.bytesTotal;
var percent:Number = total > 0 ? event.bytesLoaded/event.bytesTotal : 0;
trace('Загружено '+Math.floor(percent*100)+'%');
}
private function completeHandler(event:Event):void
{
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
this.loaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
complete();
}
private function complete():void
{
this.nextFrame();
mainClass = getDefinitionByName("CortasisGame") as Class;
var main:DisplayObject = new mainClass();
this.parent.addChildAt(main, 0);
this.parent.removeChild(this);
}
}
}
попробуйте добавить в опции компилятора -frame frameLabel CortasisGame
(в FD это можно через Project Properties > Compiler Options > Additional Compiler Options)
caseyryan
16.02.2014, 15:15
Зачем это вообще нужно? Задача прелодера скачать, и добавить как DisplayObject. Зачем ему знать какой там главный класс и какие у него есть свойства?
это прелоадер в первом кадре самой флешки
Нашел проблему, а точнее помогли)))если кому интересно то у меня просто в главном классе были 2 переменные, которые не должны были инициализироваться. var w:Number = stage.width;
var h:Number = stage.height;
Добавлено через 3 минуты
Тему можно закрывать)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.