AS3 Flex动态加载图像不允许图像ID

时间:2009-10-20 00:47:50

标签: flex actionscript-3 image

我需要动态加载一些图像(4-6),这样通过点击特定图像,用户就可以调用特定的动作。嵌入图像可以解决问题,但代价是文件大小。如果我动态加载它们,它们就会丢失它们的ID。

<comps:ExercisesScroller id="scroller" x="300" y="100"
        ex1="@Embed(source='assets/Exerc_1.png')" 
        ex2="@Embed(source='assets/Exerc_2.png')"/>

依此类推。但是在CDATA中实例化它不起作用:

import components.ExercisesSCroller;
private var custScroller:ExercisesScroller;
private function init():void {
    custScroller = new ExercisesScroller();
    this.addElement(custScroller);
    custScroller.ex1 = "@Embed(source='assets/Exerc_1.png')";
}

我认为这应该是一项非常简单的任务,但到目前为止我无法解决它。

1 个答案:

答案 0 :(得分:1)

你不能那样使用@Embed。 init()函数中的最后一行应该是这样的:

custScroller.ex1.source = "http://my.server.com/images/theRealImage.png";

这可能需要一些调整,因为我不知道您的ExercisesScroller组件的内部是什么样的。例如,您可能只需将URL作为字符串属性,并在组件内部包含代码以将更改应用于内部图像。

编辑:顺便说一句,我很困惑为什么上面的代码没有使用网址来引用替换图片。如您所示,相对路径假定文件已经是本地文件,但您说您不想将它们下载到最终用户的计算机,直到您确定用户需要它们为止。提供这样的URL可以达到您想要的效果:在您更改图像的source属性之前,不会下载图像。