从库中加载动态图像

Loading Dynamic Image from Library

在我正在处理的 Flash (Actionscript 3.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);
}

有一堆评价恰好决定了"image"。

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

我得到的错误是:

Implicit coercion of a value with static type Object to a possibly unrelated type Class.

因此,如果 JSON 响应显示天气代码为“33”,并且我在脚本中确定代码 33 = icon 4 (i4),我需要将 i4.png 加载到阶段。

在我在 Adob​​e 网站上阅读的函数 getDefinitionByName 示例中,位于 here, they use the as 运算符以在将值赋给变量之前评估表达式。

所以我建议先试试这个:

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 class 只加载运行时需要的 png。