2011-10-22 52 views
0

我有一個var,用於保存圖像路徑的字符串值。 如何使用它從該圖像同步獲取ByteArray?在Flex中同步獲取來自外部資產圖像的ByteArray

謝謝。

+0

你能否爲什麼你需要同步做詳細點嗎? ECMAScript語言在設計上是異步的,這通常是一件好事*。 – merv

+0

我使用文本和圖像生成文檔。文本被放置在「實時」中,在不同的時間幀中移動圖像使事情變得複雜。 – Francisc

回答

2

你不能同步做到這一點。但這是你如何異步做到這一點。

<?xml version="1.0" encoding="utf-8"?> 

<fx:Script> 
    <![CDATA[ 
     public function init():void { 
      var loader:Loader = new Loader(); 
      loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
      loader.load(new URLRequest(encodeURI("http://www.google.com/logos/2011/mary_blair-2011-hp.jpg"))); 
     } 

     private function onComplete(e:Event) 
     { 
      //of course if all you were doing is displaying an image its better to do: 
      //image.source = e.currentTarget.content; 

      var bytes:ByteArray = LoaderInfo(e.currentTarget).bytes; 

      //binary output 
      trace(bytes); 

      var imageLoader:Loader = new Loader(); 
      imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageComplete); 
      imageLoader.loadBytes(bytes, null); 
     } 

     private function onImageComplete(e:Event):void 
     { 
      image.source = LoaderInfo(e.currentTarget).content; 
     } 
    ]]> 
</fx:Script> 

<s:Image id="image" />