Actionscript 3 从库中加载动态图像

Actionscript 3 从库中加载动态图像,actionscript-3,flash,Actionscript 3,Flash,在我正在处理的FlashActionScript3.0项目中,我试图从库中加载PNG文件,但是要到运行时才确定应该加载哪个图标 该项目是一个天气栏,加载与作为JSON对象返回的数据提要相关联的图标。我尝试了以下方法: var iconData:Class = getDefinitionByName("i"+image); var i:* = new iconData(130, 130); var bitmap:Bitmap = new Bitmap(i); if(p==0){ today

在我正在处理的FlashActionScript3.0项目中,我试图从库中加载PNG文件,但是要到运行时才确定应该加载哪个图标

该项目是一个天气栏,加载与作为JSON对象返回的数据提要相关联的图标。我尝试了以下方法:

var iconData:Class = getDefinitionByName("i"+image);
var i:* = new iconData(130, 130);
var bitmap:Bitmap = new Bitmap(i);
if(p==0){
    today_mc.today_icon.addChild(bitmap);
}
有一系列的评估恰好决定了图像

所有导入的文件都作为类包含在Actionscript中使用,如下所示:

我得到的错误是:

将具有静态类型对象的值隐式强制为 无关类型类


因此,如果JSON响应说天气代码是'33',并且我在脚本中确定代码33=icon 4 i4,我需要将i4.png加载到stage。

在我在Adobe网站上阅读的函数getDefinitionByName的示例中,他们在将值分配给变量之前使用操作符计算表达式

因此,我建议先尝试一下:

var iconData:Class = getDefinitionByName("i"+image); as Class;
还要确保指定了正确的导入语句。在链接示例中,它们列出了以下内容:;但是,根据应用程序的需要,我不确定您是否需要前两个:

import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.utils.getDefinitionByName;

我建议将图像保存在Flash文件的外部。否则,每次都会下载所有30个PNG,即使用户只需要查看一个。然后使用AS3 Loader类只加载运行时所需的png。

啊,不知何故,我错过了as类部分,因为我读的是同一个文档页面。谢谢