动作脚本位图(或BitmapData)很奇怪。不仅它的cacheAsBitmap默认为false,但它似乎BitmapData并不仅仅是一个位图!如何真正光栅化Actionscript 3中的文本?
我发现,动画文本行阿尔法会让他们眨眼。我试图要解决它在许多方面,其中之一是绘制与背景位图的文字和动画的位图:
package
{
import flash.events.Event;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.text.TextField;
public class Main extends Sprite
{
private var bdata1:BitmapData = new BitmapData (150, 50, false, 0xDDDDFF);
private var bitmap1:Bitmap = new Bitmap(bdata1);
private var bdata2:BitmapData = new BitmapData (100, 100, false, 0x00FFFF);
private var bitmap2:Bitmap = new Bitmap (bdata2);
private var show:Boolean = false;
public function Main():void
{
stage.frameRate = 1;
var tf:TextField = new TextField();
tf.text = "layer top";
bdata1.draw(tf);
tf.text = "layer bottom"
bdata2.draw (tf);
//*
bitmap1.cacheAsBitmap = true;
bitmap2.cacheAsBitmap = true;
//*/
addChild (bitmap2);
addChild (bitmap1);
addEventListener (Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame (e:Event):void
{
if (show) var diff:Number = .2;
else diff = -.2;
bitmap1.alpha += diff;
if (bitmap1.alpha >= 1) {
show = false;
bitmap1.alpha = 1;
}
else if (bitmap1.alpha <= 0) {
show = true;
bitmap1.alpha = 0;
}
}
}
}
它应该做的是顺利(当然,如果你改变了FPS)层之间的”过渡底部“和”层顶“文本。它的功能很奇怪,至少在我的机器上,清楚地表明位图中的文本不是像位图那样对待,而是作为一个矢量(可能是TextLine)。那么BitmapData只是模拟位图?这是一个错误吗?我错过了什么吗?
http://megaswf.com/file/2433597这里是如果你不想自己编译它。 (使用全屏模式) –