2012-10-11 61 views
2

我想使用bitmapData.floodfill()方法通過使用「onclick」事件(如油漆桶)來填充圖像。但問題是,這種方法不起作用,因爲我使用透明圖像(PNG,GIF)時除外。當我使用不同的東西(如藍色,紅色等)時,它只會使用白色填充(或者我認爲alpha = 0)。這是它的外觀時,我填傑裏鼠標採用紅色clip2net.com/s/2nW65,這裏是我和嵌入圖片使用的示例:actionscript 3.0透明圖像填充

var container:MovieClip = new MovieClip(); //container that would hold the image  
    jerry_img = new Resource.jerry_graph(); //jerry image from assets/jerry.gif   

    addChild(container); 
    container.addChild(jerry_img); 
    container.addEventListener(MouseEvent.CLICK, fill_function); 

    public function fill_function(e:MouseEvent):void {    
     jerry_img.bitmapData.floodFill(e.localX, e.localY, 0x00FFFF); 
    } 

當我改變PNG或GIF爲JPEG floodfill已開始工作,但它會填補嚴重的視覺問題,如http://clip2net.com/s/2nW4J。 這裏是例子https://dl.dropbox.com/u/78904724/as_host/flood_fill.rar 的完整源(你可以改變jerry.gif在Resource.as到jerry.jpg)

另外,對不起,如果這是愚蠢的問題和我的低的英語技能。

回答

1

內置floodFill不實現別名它只填充確切的顏色,所以爲了能夠填充沒有人工製品的PNG需要準備(基本上消除別名像素)。或者尋找新的洪水填充算法,如here

最好的問候