Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Adobe AIR getQualifiedDefinitionNames_Actionscript 3_Apache Flex_Air - Fatal编程技术网

Actionscript 3 Adobe AIR getQualifiedDefinitionNames

Actionscript 3 Adobe AIR getQualifiedDefinitionNames,actionscript-3,apache-flex,air,Actionscript 3,Apache Flex,Air,我对getQualifiedDefinitionNames有一个问题,当我使用AIR 20编译时,我得到 主要 gameBg_巴布亚新几内亚$c19135a2672bad8837da970f47c7278f-30390368 当我使用Apach Flex 4.15.0或Adobe Animate CC编译时,它会按预期返回所有内容 主要 主要游戏背景 如何用AIR修复它,它返回了Main_uuugamebg类 我的示例代码: package{ import flash.display.Mo

我对getQualifiedDefinitionNames有一个问题,当我使用AIR 20编译时,我得到

主要 gameBg_巴布亚新几内亚$c19135a2672bad8837da970f47c7278f-30390368

当我使用Apach Flex 4.15.0或Adobe Animate CC编译时,它会按预期返回所有内容

主要 主要游戏背景

如何用AIR修复它,它返回了Main_uuugamebg类

我的示例代码:

package{
   import flash.display.MovieClip;  
   import flash.events.Event;  

   public class Main extends MovieClip {  

   [Embed(source="../assets/gameBg.png")]  

   public const _gamebg:Class;  

  public function Main() {  
    super();  
    if (stage) init();  
    else addEventListener(Event.ADDED_TO_STAGE, init);  
  }  

 private function init(e:Event = null):void {  

     removeEventListener(Event.ADDED_TO_STAGE, init);  
     var definitions:*;  
     if (this.loaderInfo.applicationDomain.hasOwnProperty("getQualifiedDefinitionNames")) {  
       definitions = this.loaderInfo.applicationDomain["getQualifiedDefinitionNames"]();  
       for (var i:int = 0; i < definitions.length; i++) {  
           trace(definitions[i])  
       }  
      }  
    }  
  }  
}
包{
导入flash.display.MovieClip;
导入flash.events.Event;
公共类Main扩展了MovieClip{
[嵌入(source=“../assets/gameBg.png”)]
公共建筑:类;
公共函数Main(){
超级();
if(stage)init();
else addEventListener(Event.ADDED_TO_STAGE,init);
}  
私有函数init(e:Event=null):void{
removeEventListener(Event.ADDED_TO_STAGE,init);
风险值定义:*;
如果(this.loaderInfo.applicationDomain.hasOwnProperty(“getQualifiedDefinitionNames”){
定义=this.loaderInfo.applicationDomain[“getQualifiedDefinitionNames”]();
对于(var i:int=0;i

这个把戏奏效了

///////////////
// SomeImage.as
///////////////
[Embed(source="someimage.png")] 
public class SomeImage extends Bitmap{
public function get dimensions(): String{
    return width + "x" + height;}
}

/////////////
// MyClass.as
/////////////
public class MyClas{
   public function foo(): void{
     // Instantiate the bound class to get the embedded image
     var someImage:SomeImage = new SomeImage();

     // ... do whatever you'd like with someImage
     trace("Dimensions: " + someImage.dimensions);
   }
}

为什么这是一个问题?假设您是为Air MOBILE(而不是桌面)编译的,并且很可能作为AOT’ing的iOS会由于类的内部扁平化而生成这些类型的完全限定类名。如果你是硬编码类名,你必须从字符串中解析唯一的缩进符,并观察可能出现的名称冲突。不,我只使用AIR 20 SDK和FlashDevelop编译swf,我尝试使用AIR 20 SDK的Animate CC(以前的Flash),它工作正常!您没有回答这个问题,为什么这是一个问题?我将swf作为库加载,并使用applicationDomain.getDefinition获取类