Actionscript 3 Flash AS3加载电影错误#1009-外部AS文件
我们在Flash中创建了一个使用外部actionscript文件的程序 我试图在另一个flash文件中加载/导入此swf,但遇到“错误#1009:无法访问空对象引用的属性或方法” 我知道这是我的external.as文件中的引用,但我不确定如何修复它 这是我加载(和缩放)swf的代码 有人有什么想法吗 谢谢 Edit:以下是完整的错误代码:TypeError:error#1009:无法访问null对象引用的属性或方法。在塔顿() 下面是我的.as文件代码:Actionscript 3 Flash AS3加载电影错误#1009-外部AS文件,actionscript-3,flash,Actionscript 3,Flash,我们在Flash中创建了一个使用外部actionscript文件的程序 我试图在另一个flash文件中加载/导入此swf,但遇到“错误#1009:无法访问空对象引用的属性或方法” 我知道这是我的external.as文件中的引用,但我不确定如何修复它 这是我加载(和缩放)swf的代码 有人有什么想法吗 谢谢 Edit:以下是完整的错误代码:TypeError:error#1009:无法访问null对象引用的属性或方法。在塔顿() 下面是我的.as文件代码: package { impor
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.setTimeout;
import flash.utils.clearTimeout;
import flash.utils.getDefinitionByName;
public class Tatton extends MovieClip
{
public var active_clip:MovieClip;
public var to:Number;
public function Tatton()
{
// Create empty vector of movieclips;
stage.addEventListener(MouseEvent.CLICK, reset_timeout);
init();
}
public function reset_timeout(e:Event = null)
{
clearTimeout(to);
// 3 mins
to = setTimeout(fire_timeout, 150 * 1000);
}
public function fire_timeout():void
{
// Reset the system (and run attractor) if we're not on the attractor already.
if ( !(active_clip is Attractor))
{
init();
}
}
public function init()
{
// Reset globals
Globals.skip_menu_anim = false;
Globals.skip_staff_menu = false;
load_movie("Attractor");
reset_timeout();
}
public function load_movie(name:String):void
{
if (active_clip is MovieClip)
{
kill_active_movie();
}
active_clip = createInstance(name);
addChild(active_clip);
active_clip.startup();
}
public function kill_active_movie():void
{
active_clip.shutdown();
removeChild(active_clip);
active_clip = null;
}
public function createInstance(className:String):Object
{
var myClass:Class = getDefinitionByName(className) as Class;
var instance:Object = new myClass();
return instance;
}
}
}
您需要在调用Loader.load后添加事件侦听器,因为在调用load之前contentLoaderInfo为null。尝试此操作
public function Tatton() {
addEventListener(Event.ADDED_TO_STAGE, stageAvailable);
}
private function stageAvailable(e:Event = null) {
removeEventListener(Event.ADDED_TO_STAGE, stageAvailable);
// Create empty vector of movieclips;
stage.addEventListener(MouseEvent.CLICK, reset_timeout);
init();
}
请参阅本文以了解为什么您不应该在上面的代码中查找错误。尝试跟踪对象以在filename.swf代码中找到空值。为了方便起见,编译器可能还会给您一个行号。我的猜测是,您需要在filename中侦听添加的_to_STAGE事件。swfI已更新问题,以包含完整的错误消息和.as文件-如果可以,您将是一名救生员help@alib0ng0编辑原始帖子中的代码以显示此更改
public function Tatton() {
addEventListener(Event.ADDED_TO_STAGE, stageAvailable);
}
private function stageAvailable(e:Event = null) {
removeEventListener(Event.ADDED_TO_STAGE, stageAvailable);
// Create empty vector of movieclips;
stage.addEventListener(MouseEvent.CLICK, reset_timeout);
init();
}