2
在Flash Builder(flex 4)中,我嘗試使用下一個代碼將用戶(來自文件系統)的圖像設置爲重複背景。它與mx:Image一起工作,但我想使用s:BitmapFill的很酷的repbiletis。如何動態設置s:BitmapFill的來源? (Flash Builder,Code Inside)
BTW:技術我用也不適用於S:BitmapImage。此外,FP不會返回任何錯誤。我該如何處理我的代碼才能使其工作?
<?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>
+1 ...比Flex文檔更清晰,謝謝。只是一個挑剔的問題,但在調用** loadBytes **之前添加「完整」偵聽器會更安全嗎?如果該文件被緩存並立即加載,該處理程序可能永遠不會被調用。 – harpo 2011-01-11 16:29:19
是的,我同意你的意見。不太確定這是否會在現實生活中發生(我認爲這個調用實際上是由FP執行後完成的,但我不確定)。 – 2011-01-13 19:54:20