2012-05-17 106 views
0

我正在开发一个基于柑橘引擎的flash游戏,用于uni项目。柑橘引擎Flash游戏没有正确编译

所有这一切都完成在手,但我尝试整个项目编制成网的释放。

在FLAHS香港专业教育学院建造了文件 - >导出 - >发布生成和编译的游戏。

.swf文件打开了罚款和initiatze的spirte菜单,但点击开始游戏按钮时就开始启动了比赛状态,但随后在纯色挂断,在Flash调试即时得到这些错误

SecurityError:错误#2000:没有活动的安全上下文。

开始 类型错误:错误#1009:无法访问空对象引用的属性或方法。 at com.citrusengine.utils :: ObjectMaker $/FromMovieClip() at GameState/initialize() at com.citrusengine.core :: CitrusEngine/handleEnterFrame() SecurityError:Error#2000:No active security context。

开始 类型错误:错误#1009:无法访问空对象引用的属性或方法。 在com.citrusengine.utils :: ObjectMaker $/FromMovieClip() 在游戏状态/初始化() 在com.citrusengine.core :: CitrusEngine/handleEnterFrame()

任何建议理解

回答

0

错误#2000通常是找不到错误的文件。您可以从运行IOErrorEvent获取更多信息,如下所示:

myLoader.addEventListener(IOErrorEvent.IO_ERROR, IOError) 

function IOError(e:IOErrorEvent):void { 
    trace(e.text); 
} 

可能存在路径到正确文件的问题。

错误#1009很可能是由于IOError而无法处理尚未加载的资产的多米诺骨牌效应。如果您正在将其他SWF加载到舞台上,并且这些子SWF试图在舞台准备就绪之前尝试使用舞台,这种情况也可能会成为问题,在这种情况下,您只想在addedToStage事件触发后才开始脚本。您可以设置像这样:

if (this.parent is Stage) { 
    stageReady(); 
} else { 
    addEventListener("addedToStage", stageReady); 
} 

function stageReady(e:Event = null):void { 
    // begin your setup code here. 
} 

这里是如果您的SWF是不是一个装载机里面封装,父对象应该是舞台,否则,您可以侦听器安全地添加到加载的SWF的逻辑时间表,用于监听addedToStage事件。

0

也许以下能够解决您的问题:

包装所有的初始化代码自定义函数(可以说:initFunctionOfApplication)。在调用此init函数之前设置一个延迟计时器。这是我以前遇到过的一个问题,并且在一小段时间内解决了问题......也许这会解决您的问题。

setTimeout(function():void{initFunctionOfApplication();}, 3000); 

让我们贴!