在Flash Builder 4.6中动态更改图像

时间:2012-02-12 18:53:20

标签: actionscript-3 flex flex4.5 flash-builder4.5

在我的代码中,我定义了以下内容: <s:Image id="test" x="50" y="50" width="30" height="30" click="onClick_clickHandler(event)" smooth="true" smoothingQuality="high" source="@Embed('icons/myImage_60_off.png')"/> 我想要的是每次用户点击图像时都能够改变图像的来源 - 类似于收藏夹在浏览器上的工作方式。 我不知道如何从我的代码中更改图像的来源。

谢谢

2 个答案:

答案 0 :(得分:0)

我的解决方案中有一个隐藏的数据网格,因为它以可见的方式开始。

图片看起来像这样:

 <mx:Image top="153" left="10" right="10" bottom="5" source="{dgpick.selectedItem.ImageFile}" />

每次有人点击图片时,我都会增加数据网格的选定索引,标签会显示相应的数据,因为它们也绑定到数据。

图像还可以包含指向XML文件的链接,您可以像这样加载:

<s:HTTPService id="Config"
                   url="config.xml"
                   result="resultHandler(event)"/>

private function resultHandler(event:ResultEvent):void 
{
    ImagesURL = event.result.images.ImagesURL[iCounter];                

}

每次有人点击图片时,您都可以增加计数器,等等。

希望这会给你一些想法。

有20种方法可以做到这一点。

如果您需要更多代码,请根据需要添加评论。

答案 1 :(得分:0)


我终于做到了!

public var image_loader:Loader; //定义一个新的装载机

image_loader = new Loader(); //在所需位置创建新的加载器(在我的情况下,在页面的初始化方法中) image_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); //添加一个监听器和一个函数来分配给监听器
取决于命令必须执行的位置

image_loader.load(new URLRequest('location of the image')); //这将动态加载图像

function imageLoaded(event:Event):void {image_Id.source = image_loader;} //其中image_Id是s的id:要修改的图像标签

另外,我不得不从先前发布的s:Image标签中删除源代码 其余的只是应用程序实现功能所需方式的逻辑,所以它几乎留给了开发人员的愿望