从库中加载动态图像

时间:2015-04-20 19:01:01

标签: actionscript-3 flash

在我正在处理的Flash(Actionscript 3.0)项目中,我正在尝试从库中加载PNG文件,但是在运行时才会加载哪个图标。

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

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中,如下所示:

icon as classes

我得到的错误是:

  

使用静态类型Object将值隐式强制转换为可能的值   无关类型。

因此,如果JSON响应显示天气代码是'33',并且我在脚本中确定代码33 =图标4(i4),我需要将i4.png加载到舞台上。

2 个答案:

答案 0 :(得分:0)

在我在Adobe网站上阅读的位于here的函数getDefinitionByName的示例中,他们使用as运算符来计算表达式,然后将值赋给变量。< / p>

所以我建议先尝试一下:

var iconData:Class = getDefinitionByName("i"+image); as Class;

还要确保指定了正确的import语句。在链接的示例中,他们列出了以下内容;但是,前两个我不确定您是否需要根据您的应用程序的需求:

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

答案 1 :(得分:0)

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