gpt4 book ai didi

actionscript-3 - 如何在 Actionscript 3 中真正光栅化文本?

转载 作者:行者123 更新时间:2023-12-04 05:46:05 25 4
gpt4 key购买 nike

Actionscript Bitmap(或 BitmapData)很奇怪。不仅默认情况下它的 cacheAsBitmap 是 false,而且似乎 BitmapData 不仅仅是一个位图!

我发现,动画文本行 alpha 会使它们闪烁。我尝试以多种方式解决它,其中之一是将带有背景的文本绘制到位图并为位图设置动画:

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 只是模拟位图吗?这是一个错误吗?我错过了什么吗?

最佳答案

首先,您需要嵌入 Font在瑞士法郎。假设您已嵌入 "Arial" .然后试试这个:

var tf:TextField = new TextField ();
var tf_format:TextFormat = tf.defaultTextFormat;
tf_format.font = "Arial"; //Specifying embedded font's name
tf.defaultTextFormat = tf_format;
tf.embedFonts = true;
tf.antiAliasType = AntiAliasType.ADVANCED;
//.........

在此之后,您将拥有“平滑文本”。

关于actionscript-3 - 如何在 Actionscript 3 中真正光栅化文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10672629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com