在我正在处理的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中,如下所示:
我得到的错误是:
使用静态类型Object将值隐式强制转换为可能的值 无关类型。
因此,如果JSON响应显示天气代码是'33',并且我在脚本中确定代码33 =图标4(i4),我需要将i4.png加载到舞台上。
答案 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。