2009-12-10 34 views

回答

0

也許這也可以幫助,這個例子創建一個BitmapData實例,然後將它作爲一個ByteArray發送到服務器(在我的情況下,我使用的是PHP)...您需要編寫服務器端代碼,但沒有什麼很特別的位置

package 
{ 
import flash.display.Bitmap; 
import flash.display.BitmapData; 
import flash.display.Shape; 
import flash.display.Sprite; 
import flash.events.Event; 
import flash.events.ProgressEvent; 
import flash.net.URLLoader; 
import flash.net.URLRequest; 
import flash.net.URLRequestHeader; 
import flash.net.URLRequestMethod; 
import flash.net.URLVariables; 
import flash.utils.ByteArray; 
import mx.graphics.codec.PNGEncoder; 
import mx.utils.Base64Encoder; 


public class DataUpload extends Sprite 
{ 

    private var _loader:URLLoader; 

    public function DataUpload() 
    { 
     // create a bitmap data 
     var bd:BitmapData = createDummyImage(); 

     var png:PNGEncoder = new PNGEncoder(); 
     var ba:ByteArray = png.encode(bd); 

     var b64:Base64Encoder = new Base64Encoder(); 
     b64.encodeBytes(ba); 


     // initialize loader 
     _loader = new URLLoader(); 
     _loader.addEventListener(Event.COMPLETE, loadCompleteHandler); 
     _loader.addEventListener(ProgressEvent.PROGRESS, loadProgressHandler); 

     var request:URLRequest = new URLRequest("http://localhost/YOUR_PHP_SCRIPT_URI");    
     request.method = URLRequestMethod.POST; 

     var variables:URLVariables = new URLVariables(); 
     variables.fileData = b64; 
     variables.fileName = "foobar"; 

     request.data = variables; 
     _loader.load(request); 

    } 

    protected function loadCompleteHandler(event:Event):void { 
     trace("complete"); 
    } 

    protected function loadProgressHandler(event:ProgressEvent):void { 
     trace("progress : ", event.bytesLoaded/event.bytesTotal); 
    } 

    private function createDummyImage():BitmapData { 
     var bd:BitmapData = new BitmapData(300, 300, true, 0x00ffffff); 

     var shape:Shape = new Shape(); 
     shape.graphics.beginFill(0xff0000); 
     shape.graphics.drawCircle(10, 10, 10); 
     shape.graphics.endFill(); 

     bd.draw(shape); 
     return bd; 
    }  

} 

}

0

第1步:使用ImageSnapshot截圖(我假設我們只是談論Flash屏幕,而不是操作系統)。這可以爲您處理圖像編碼,或者您可以捕獲BitmapData並自行重新編碼。

步驟2(a):使用MultipartLoader來發布生成的字節。 Flash Player 10中的Flash安全性將要求在用戶交互時發生HTTP帖子。

步驟2(B):使用一個正則URLLoader/URLRequest後所生成的字節(Base64編碼,說)。

相關問題