Apache flex 如何动态设置s:BitmapFill的源?(Flash Builder,内部代码)
在FlashBuilder(Flex4)中,我尝试使用下一个代码将用户(从文件系统)选择的图像设置为重复的背景。它与mx:Image一起工作,但我想使用s:BitmapFill的酷炫功能 顺便说一句:我使用的技术也不适用于S:BitmapImage。此外,FP不会返回任何错误。我该如何处理我的代码才能使其正常工作Apache flex 如何动态设置s:BitmapFill的源?(Flash Builder,内部代码),apache-flex,flash,actionscript-3,bitmap,mxml,Apache Flex,Flash,Actionscript 3,Bitmap,Mxml,在FlashBuilder(Flex4)中,我尝试使用下一个代码将用户(从文件系统)选择的图像设置为重复的背景。它与mx:Image一起工作,但我想使用s:BitmapFill的酷炫功能 顺便说一句:我使用的技术也不适用于S:BitmapImage。此外,FP不会返回任何错误。我该如何处理我的代码才能使其正常工作 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:net="flash.net.*"
minWidth="955" minHeight="600" >
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.utils.ObjectUtil;
private function btn_click(evt:MouseEvent):void {
var arr:Array = [];
arr.push(new FileFilter("Images", ".gif;*.jpeg;*.jpg;*.png"));
fileReference.browse(arr);
}
private function fileReference_select(evt:Event):void {
fileReference.load();
}
private function fileReference_complete(evt:Event):void {
img.source = fileReference.data;
Alert.show(ObjectUtil.toString(fileReference));
}
]]>
</fx:Script>
<fx:Declarations>
<net:FileReference id="fileReference"
select="fileReference_select(event);"
complete="fileReference_complete(event);" />
</fx:Declarations>
<s:Rect id="backgroundRect" left="0" right="0" top="0" bottom="0">
<s:fill>
<s:BitmapFill id="img" source="@Embed('1.jpg')" fillMode="repeat" />
</s:fill>
</s:Rect>
<mx:Button id="btn"
label="Browse and preview..."
click="btn_click(event);" />
</s:Application>
检查此代码:
private function fileReference_complete(evt:Event):void {
var loader:Loader = new Loader();
loader.loadBytes(fileReference.data);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderCompleteHandler);
}
private function loaderCompleteHandler(evt:Event):void{
img.source = evt.target.content;
}
因此,您需要使用加载程序来创建位图对象。+1。。。比Flex文档更清晰,谢谢。只是吹毛求疵,但在调用loadBytes之前添加“完整”侦听器不是更安全吗?如果文件被缓存并立即加载,处理程序可能永远不会被调用。是的,我同意你的看法。不太确定这在现实生活中是否会发生(我认为调用实际上是在函数执行后由FP完成的,但我不确定)。