2

我正在做一个项目,我们让艺术家通过将影片剪辑和位图导入库。flash,有时我正在访问具有多个位图子项的影片剪辑。我需要从代码中的各种位置访问和缩放各种位图。

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

我一直在查看bitmaps 的文档,但它没有说明任何可以用它设置的全局值。

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

4

2 回答 2

4

警告:此答案仅适用于通过新 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。

于 2013-03-13T10:25:22.793 回答
1

我假设您的主要问题是位图主要是手动导入 Flash IDE 并放置在影片剪辑中,这就是 Ihsan 的解决方案可能不起作用的原因,因为您没有对所有这些位图的引用。

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

于 2013-03-14T10:24:15.417 回答