我正在做一个项目,我们让艺术家通过将影片剪辑和位图导入库。flash,有时我正在访问具有多个位图子项的影片剪辑。我需要从代码中的各种位置访问和缩放各种位图。
我知道我可以通过访问来设置位图的平滑myBitmap.smoothing
,但我希望有一个可以设置的全局值,以便平滑默认为真,而不是假。
我一直在查看bitmaps 的文档,但它没有说明任何可以用它设置的全局值。
所以我的主要问题是: 你们中是否有人知道为我使用的所有位图启用平滑的方法,所以我不必为我添加的每个位图设置它?
我正在做一个项目,我们让艺术家通过将影片剪辑和位图导入库。flash,有时我正在访问具有多个位图子项的影片剪辑。我需要从代码中的各种位置访问和缩放各种位图。
我知道我可以通过访问来设置位图的平滑myBitmap.smoothing
,但我希望有一个可以设置的全局值,以便平滑默认为真,而不是假。
我一直在查看bitmaps 的文档,但它没有说明任何可以用它设置的全局值。
所以我的主要问题是: 你们中是否有人知道为我使用的所有位图启用平滑的方法,所以我不必为我添加的每个位图设置它?
警告:此答案仅适用于通过新 Bitmap 调用制作的位图。
不,没有这样做的全局开关。
最简单的方法是查找新的位图调用并将平滑设置为您的来源。
您可以继承 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);
}
}
}
将此代码保存到某处/at/your/dirs/MyBitmap.as
然后在您的文件中找到并用“new MyBitmap”替换“new Bitmap”。在这种情况下,您也应该导入某个地方。at.your.dirs.MyBitmap。一般来说,这不应该带来过敏反应。但如果函数不接受您的“MyBitmaps”,它们可以通过 (Bitmap)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”替换“new Bitmap”。在这种情况下,您也应该导入某个地方。at.your.dirs.newSmoothBitmap。
我假设您的主要问题是位图主要是手动导入 Flash IDE 并放置在影片剪辑中,这就是 Ihsan 的解决方案可能不起作用的原因,因为您没有对所有这些位图的引用。
如果确实如此,那么一个简单的解决方案是设置一个规则,然后每当导入位图时,始终选中属性框中的“允许平滑”选项。无论有多少人正在将位图资产导入您的项目,这都会起作用。