簡體   English   中英

AS3加載程序忽略.png透明度

[英]AS3 Loader ignoring .png transparency

在Flash CS4中,打開一個新文檔,將背景色更改為可識別的顏色(例如洋紅色),然后添加以下代碼:

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event){addChild(e.target.content);});
loader.load(new URLRequest('newsnakelub8.png'));

...用您碰巧可以使用的任何文件名替換.png文件名,我抓住了這個文件名。 編譯.swf,讓我感到失望-正常透明的.png現在具有白色背景,不允許Flash背景色顯示出來。

我在某處缺少神奇的'treatAsPNG24'屬性嗎?

圖像實際上沒有透明的背景...

替代文字
(來源: liranuna.com

為了您的愉悅,固定圖像:

替代文字

問題是您的png。 嘗試在Photoshop中打開它,那里也不是透明的。 嘗試使用其他工具(在Google上進行搜索,或通過Flash或PS發布),即可正常使用。 (也就是說,沒有要調用的設置,您只需要一個適當的圖像即可。)

    public static function getSource(stringURL:String):void {
        currentProcessedURL = stringURL;
        var loader:Loader = new Loader();
        var request:URLRequest = new URLRequest(stringURL);
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
        loader.load(request);               
    }

    private static function onComplete(e:Event):void {
        try{
            var bitMap:BitmapData = new BitmapData(
                (e.currentTarget as LoaderInfo).loader.width,
                (e.currentTarget as LoaderInfo).loader.height);
            bitMap.draw((e.currentTarget as LoaderInfo).loader);
            var icon:BitmapSymbol = new BitmapSymbol();
            icon.source = bitMap;
            standardStringToImage[currentProcessedURL] = icon;      
            getSource(ALL_ARRAY.pop());
        } catch(e:Error) {
            trace(e);
        }           
    }

這樣做會加載帶有白色背景的圖像。 需要將參數,true,0x00ffffff添加到BitmapData構造函數中。 我找到此線程是因為我的PNG帶有白色背景,而且我知道它們具有透明背景。 因此,希望這將對遇到與我一樣的問題的任何人有所幫助。

既然最好教你怎么釣魚...

如果您使用的是GIMP 2 (像啤酒一樣免費),則只需打開圖像,然后選擇“ 圖層| 透明... | 將顏色設置為Alpha,然后選擇要轉換為透明背景的顏色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM