Flash AS3 - 位图平滑的全局值

时间:2013-03-13 09:40:28

标签: actionscript-3 flash

我正在开展一个项目,我们让艺术家通过将图片剪辑和位图导入库中。 flash,有时我正在访问带有多个位图子元素的movieclip。我需要访问和扩展代码中各种位置的各种位图。

我知道我可以通过访问myBitmap.smoothing来设置位图的平滑,但是我希望有一个可以设置的全局值,以便默认情况下平滑是真的,而不是假。

我一直在关注the documentation for bitmaps,但它没有说明可以用此设置的任何全局值。

所以我的主要问题是: 你们中的任何人都知道如何为我使用的所有位图启用平滑,所以我不必为我添加的每个位图设置它吗?

2 个答案:

答案 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的解决方案可能无效,因为您没有对所有这些位图的引用。

如果情况确实如此,那么一个简单的解决方案是设置规则,然后每当导入位图时,始终选中属性框中的“允许平滑”选项。无论有多少人正在将位图资源导入您的项目,这都会有效。