您好我在某个窗口上将外部.swf放入我的.fla但是我遇到以下错误:
TypeError:错误#1009:无法访问空对象引用的属性或方法。 在TestingOne / createPlayer() 在TestingOne()
我尝试将其放入外部.swf但没有成功 -
{
stage.addEventListener(Event.ADDED_TO_STAGE, init);
}
我在动作图层框架中添加了以下内容:
stop();
function RoachWarsGame2(){
loadPlayer()
}
function loadPlayer(){
var my_loader:Loader = new Loader();
my_loader.load(new URLRequest("TestingOne.swf"));
addChild(my_loader);
my_loader.x = -320.95;
my_loader.y = -485.95;
}
但我没看到比赛。什么都没有显示出来。有人可以给我一个解决方案吗?谢谢....
londonbird
答案 0 :(得分:1)
取下听众的舞台部分,它应该有效。
你做的是要求flash告诉你该对象何时完成创建并已添加到显示列表中。因此,现在可以安全地操纵你的内心。
说stage.add~打败了目的。
编辑:你真的需要在swf中加载ADDED_TO_STAGE。这是您尝试使用它之前100%确定它已加载的唯一方法。
基本上它应该如何运作......
首先我们制作的外部swf,我们将加载进行测试。
package src
{
import flash.display.Sprite;
import flash.events.Event;
public class ExternalSWFDocumentClass extends Sprite
{
public function ExternalSWFDocumentClass()
{
addEventListener(Event.ADDED_TO_STAGE, initializeThisClass);
}
private function initializeThisClass(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, initializeThisClass);
// I am now added to the display list. Have fun.
// Now when Some other swf loads me up I will know
// for sure I have access to the stage etc.
// Below this is for testing
var sp:Sprite = new Sprite();
sp.graphics.clear();
sp.graphics.lineStyle(1, 0);
sp.graphics.beginFill(0xccccff);
sp.graphics.drawCircle(0, 0, 20);
sp.graphics.endFill();
sp.x = stage.stageWidth * 0.5;
sp.y = stage.stageHeight * 0.5;
addChild(sp);
}
}
}
既然你说你想要从FLA文件中加载它,你可以这样做。
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
var loader:Loader = new Loader();
var file:URLRequest = new URLRequest("externalSWFTest.swf");
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteLoad);
loader.load(file);
function onCompleteLoad (loadEvent:Event):void
{
addChild(loadEvent.currentTarget.content);
}
编辑:再次阅读你的帖子让我觉得这可能不是问题。考虑到你得到的错误,它可能是其他东西。没有理由addChild加载器或设置它的x和y属性。