我需要动态加载一些图像(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')";
}
我认为这应该是一项非常简单的任务,但到目前为止我无法解决它。
答案 0 :(得分:1)
你不能那样使用@Embed。 init()
函数中的最后一行应该是这样的:
custScroller.ex1.source = "http://my.server.com/images/theRealImage.png";
这可能需要一些调整,因为我不知道您的ExercisesScroller组件的内部是什么样的。例如,您可能只需将URL作为字符串属性,并在组件内部包含代码以将更改应用于内部图像。
编辑:顺便说一句,我很困惑为什么上面的代码没有使用网址来引用替换图片。如您所示,相对路径假定文件已经是本地文件,但您说您不想将它们下载到最终用户的计算机,直到您确定用户需要它们为止。提供这样的URL可以达到您想要的效果:在您更改图像的source
属性之前,不会下载图像。