我正在使用Flex 3.6创建本机扩展。编码的本机端然后创建Flex库项目,然后创建.ane文件。最后将.ane文件导入myFlex Project。
这是我遇到的问题。当我正在调试应用程序时,“1046:未找到类型或不是编译时常量:ExtensionContext”错误发生。附上了图书馆项目.as class。
先谢谢
package com.extension.samples
{
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import flash.external.ExtensionContext;
public class NetworkConnectionANE extends EventDispatcher
{
public var _extContext : ExtensionContext;
public function NetworkConnectionANE(target:IEventDispatcher=null)
{
_extContext = ExtensionContext.createExtensionContext("com.extension.samples.NetworkConnectionANE", null);
super(target);
}
public function Connect(path:String):int
{
return _extContext.call("nativeFunc", path);
}
public function dispose():void
{
_extContext.dispose();
}
}
}
编辑:
我试图在另一个Flex桌面应用程序中使用从库项目创建的.swc文件,但是同样的错误
也尝试使用_extContext = ExtensionContext.createExtensionContext(“com.extension.samples.NetworkConnectionANE”,“”);
编辑:有关Flex SDK的问题,SDK 4.6中没有问题。现在的问题是,如何在Flex 3.6 SDK的lib项目中使用Extension?
答案 0 :(得分:6)
右键单击flash builder goto项目属性中的项目,并在flex库编译器中添加空气库。
答案 1 :(得分:1)
我遇到了同样的问题但是通过以下方式解决了问题:
答案 2 :(得分:-1)
据我所知,在这些情况下,ExtensionContext.createExtensionContext()可以为null:
该调用不在.ane文件中。您无法从.swc或.swf文件中调用此方法。换句话说,在调用之前需要将其编译为.ane文件。
您尝试在平台中使用扩展程序不支持的扩展程序。例如,您尝试在PC上使用iOS扩展程序。
扩展程序的ID不存在。扩展ID必须与您在extension.xml中指定的扩展ID相同,如:
<extension xmlns="http://ns.adobe.com/air/extension/3.5">
<id>com.extension.samples.NetworkConnectionANE</id>
<versionNumber>0.0.1</versionNumber>
....
顺便说一下你不需要设置ExtensionContext.createExtensionContext调用的第二个参数,除非你想指定特定于操作系统的API(我甚至没有看到应用程序,这样做)