2013-03-13 81 views
2

我正在製作一個項目,我們有藝術家通過嚮導入庫導入影片剪輯和位圖。閃光燈,有時我正在訪問一個帶有多個位圖子的動畫片段。我需要訪問和縮放來自代碼中各種位置的各種位圖。Flash AS3 - 位圖平滑的全局值

我知道我可以通過訪問myBitmap.smoothing來設置位圖的平滑,但是我想要設置一個全局值,以便平滑默認爲true,而不是false。

我一直在尋找the documentation for bitmaps,但它並沒有說任何可以用這個設置的全局值。

所以我的主要問題: 做任何你知道的方式來啓用和我一起工作的所有的位圖平滑,所以我不會將其設置爲每一位圖我補充的嗎?

回答

1

我假設您的主要問題是,位圖主要是手動導入到Flash IDE中並放置在影片剪輯中,這就是爲什麼Ihsan的解決方案可能無法正常工作,因爲您沒有對所有這些位圖的引用。

如果確實如此,那麼一個簡單的解決方案是設置規則,然後每當導入位圖時,始終選中屬性框中的「允許平滑」選項。無論有多少人正致力於將位圖資產導入到您的項目中,這都可行。

+0

這實際上是我正在尋找的解決方案,謝謝allot ! – 2013-03-21 09:34:07

+0

抱歉,您完全不瞭解您問題的範圍。祝你今天愉快。 – Ihsan 2013-03-21 09:42:11

+0

@Ihsan,不是你的錯,我想我可以更好地解釋它。 ;) – 2013-03-21 13:31:28

4

警告:此答案僅適用於通過新的位圖調用製作的位圖。

不,沒有這樣做的全局開關。

最簡單的方法是找到新的位圖調用,並在您的源代碼中將smoothing設置爲true。

您可以繼承Bitmap類和寫入修改的構造一樣,

package somewhere.at.your.dirs { 

import flash.display.Bitmap; 

public class MyBitmap extends Bitmap{ 

public function MyBitmap(
    bitmapData:BitmapData = null, 
    pixelSnapping:String = "auto", 
    smoothing:Boolean = true) { 

    super(bitmapData, pixelSnapping, smoothing); 
} 
} 
} 

這段代碼保存在某個地方/在/您/目錄/ MyBitmap.as

然後查找和替換「新位圖「在你的文件中加入」新的MyBitmap「。 在這種情況下,您應該導入somewhere.at.your.dirs.MyBitmap。 一般來說這不應該帶來過敏反應。但如果功能不接受你的「MyBitmaps」,他們可以通過(位圖)myBmp被鑄造降至位圖...

另一個不 - 所以 - 實用的方法是如下:

package somewhere.at.your.dirs{ 

import flash.display.Bitmap; 

public function newSmoothBitmap(
    bitmapData:BitmapData = null, 
    pixelSnapping:String = "auto", 
    smoothing:Boolean = true): Bitmap { 

    return(new Bitmap(bitmapData, pixelSnapping, smoothing)); 
} 
} 

保存此代碼到某處/ at/your/dirs/newSmoothBitmap.as

然後在文件中查找並用「newSmoothBitmap」替換「新位圖」。 在這種情況下,您應該導入somewhere.at.your.dirs.newSmoothBitmap。

+0

唯一的問題是,不是每個位圖我必須設置平滑爲通過調用。 '新的Bitmap()',一些是動畫片段的孩子,並且在代碼中沒有被引用。我的解決方案可能會做一個功能,搜索位圖並設置平滑。然而,你確實回答了全局變量存在的問題,所以我會接受這個答案,並在我的問題中發佈自己的解決方案,當我到達它時。 – 2013-03-13 12:37:44