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