【问题标题】:Loading Dynamic Image from Library从库中加载动态图像
【发布时间】:2015-04-20 19:01:01
【问题描述】:

在我正在处理的一个 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);
}

有一堆评估恰好可以确定“图像”。

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

我得到的错误是:

将静态类型 Object 的值隐式强制转换为可能 不相关的类型类。

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

【问题讨论】:

    标签: actionscript-3 flash


    【解决方案1】:

    在我在 Adob​​e 网站上阅读的函数 getDefinitionByName(位于 here)的示例中,他们使用 as 运算符在将值分配给变量之前评估表达式。

    所以我建议先试试这个:

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

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

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

    【讨论】:

    • 啊,不知何故我错过了“as Class”部分,因为我阅读了同一个文档页面。谢谢!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-12
      • 2018-09-19
      相关资源
      最近更新 更多