Actionscript 3 AS3外部接口不来自主类

Actionscript 3 AS3外部接口不来自主类,actionscript-3,flash,Actionscript 3,Flash,我正在尝试使用AS3外部接口。我写了一些AS3代码,它可以截取flash阶段的屏幕抓图,然后我可以在JS中使用这些数据 当我把它作为flash的主类时,它正在工作,但是我希望它能作为一个as文件导入。然而,当尝试这种方法时,它似乎不起作用 将我的代码粘贴到此处: 要从我的主闪存文件初始化此文件,我使用以下代码: if (!grabHelper) { var grabHelper = new framegrabber(); } 在Flash debug player中,我可以看到跟踪显

我正在尝试使用AS3外部接口。我写了一些AS3代码,它可以截取flash阶段的屏幕抓图,然后我可以在JS中使用这些数据

当我把它作为flash的主类时,它正在工作,但是我希望它能作为一个as文件导入。然而,当尝试这种方法时,它似乎不起作用

将我的代码粘贴到此处:

要从我的主闪存文件初始化此文件,我使用以下代码:

if (!grabHelper) {
    var grabHelper = new framegrabber();
}
在Flash debug player中,我可以看到跟踪显示framegrabber已准备就绪,但当我在JS中调用它时,它永远不会工作,我会收到一个错误提示:

调用对象上的方法时出错


你知道我做错了什么吗?我是ActionScript的新手

grabHelper是函数的本地代码,因此它之外的任何东西都无法获取它。您可以发布主闪存文件的完整代码吗?上面的代码是主闪存文件代码,与我导入AS文件的行几乎不同。grabHelper位于主时间线上,因此,除此之外没有任何内容需要掌握-除非我误解了?我想她指的是第二行与您的时间线示例的第一行冲突。如果(!grabHelper)when grabHelper只是作为变量在同一个函数中定义,则无法执行此操作。试着这样做:
var-grabHelper:framegrabber;if(!grabHelper){grabHelper=new framegrabber();}
现在if知道你的意思了。我想知道是否需要IF声明?如果问得不粗鲁,你能解释一下逻辑吗?我想这就是为什么Petr要求完整的时间线代码。事实上,我怀疑grabHelp正在被垃圾收集。