如何在AdobeAIR中从Javascript访问Actionscript
我有一个用html/javascript编写的AIR应用程序,我想使用Actionscript打印功能,但我没有使用Actionscript for AIR的经验 我应该把Actionscript代码放在哪里?它是进入mxml文件还是需要编译成Flash应用程序。我应该把它放在哪里,如何将它包含到html文档中?最后,如何从Javascript调用AS函数 ====更新===== 我知道我必须使用mxmlc将.mxml或.as文件编译成.swf,我的.as文件中有以下内容:如何在AdobeAIR中从Javascript访问Actionscript,air,Air,我有一个用html/javascript编写的AIR应用程序,我想使用Actionscript打印功能,但我没有使用Actionscript for AIR的经验 我应该把Actionscript代码放在哪里?它是进入mxml文件还是需要编译成Flash应用程序。我应该把它放在哪里,如何将它包含到html文档中?最后,如何从Javascript调用AS函数 ====更新===== 我知道我必须使用mxmlc将.mxml或.as文件编译成.swf,我的.as文件中有以下内容: package {
package {
import mx.controls.Alert;
public class HelloWorld {
public function HelloWorld():void {
trace("Hello, world!");
}
}
}
或者,在.mxml文件中:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public function HelloWorld():void {
Alert.show("hello world!");
trace("Hello, world!");
}
]]>
</mx:Script>
</mx:Application>
这可以编译,但当我将其包含在html文件中时:
<script src="actionscript.swf" type="application/x-shockwave-flash"></script>
我得到以下错误:
TypeError:错误#1009:无法访问空对象引用的属性或方法。
在mx.managers::FocusManager/activate()中
在mx.managers::SystemManager/activateForm()处
在mx.managers::SystemManager/activate()处
在mx.core::Application/initManagers()中
在mx.core::Application/initialize()中
在actionscript/initialize()处
在mx.managers::SystemManager/
在mx.managers::SystemManager/initializeTopLevelWindow()处
在mx.managers::SystemManager/
在mx.managers::SystemManager/docFrameListener()处
你知道那是什么意思吗
您必须使用air.trace
,其中air
是一个预定义的Javascript包装器,它覆盖了实用程序包
我假设您正在使用HTML/AJAX进行AIR开发
但是,否则,您需要使用ExternalInterface使AS函数可用于JS。你能告诉我们你为什么需要这个吗
您必须使用air.trace
,其中air
是一个预定义的Javascript包装器,它覆盖了实用程序包
我假设您正在使用HTML/AJAX进行AIR开发
但是,否则,您需要使用ExternalInterface使AS函数可用于JS。你能告诉我们你为什么需要这个吗?关于这个的文档可以在以下网址找到: 确保使用acompc编译: 注意:要编译ActionScript SWF 作为HTML的一部分使用的库 在空中翻页,使用acompc编译器
而且。。。由于您正在使用警报类。。。这取决于Flex框架。确保在编译swf时。您可以在整个框架中编译。(即,确保
-static link runtime shared libraries=true
)在以下位置可以找到关于此的文档:
确保使用acompc编译:
注意:要编译ActionScript SWF
作为HTML的一部分使用的库
在空中翻页,使用acompc编译器
而且。。。由于您正在使用警报类。。。这取决于Flex框架。确保在编译swf时。您可以在整个框架中编译。(即确保
-static link runtime shared libraries=true
)你是说我可以直接从JS使用AS函数,而无需将actionscript编译成flash?你是说我可以直接从JS使用AS函数,而无需将actionscript编译成flash?