flex 旋转字体/旋转位图/字体以指定旋转中心旋转/定时器的简单用法

本文介绍如何在Flash中实现文本的旋转效果,包括直接旋转、通过转换为位图进行旋转及自动旋转的方法,并提供了详细的步骤说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现内容:文字旋转1.---以文字的左顶点为中心旋转

                        2.---以指定点位中心旋转

                        3.---自动旋转

所使用知识:位图数据, 文字显示,绘图, 定时器,事件侦听

关键字:TextField     TextFormat   BitmapData     Bitmap      Sprite   Timer

 

 

 

 

1.首先说明, TextField, Bitmap 都可以addChild到Sprite中, 并且自动会放到显示画布的左顶点处

2.TextField, Bitmap都有x,y属性 ,定义相对父级容器的位置。设置他们的x,y值即可以更改它们的显示位置

3.BitmapData 有rect 属性,但是它为只读。因此我理解为它是没有位置概念的,但是我们可以在创建的时候定义它的大小,即设定width, height.以下可参看具体代码

 

 

 

方案一:文本能显示,但不能旋转

创建文本:

var s:Sprite = new Sprite;

//将该Sprite放到要显示的父级容器中

var t:TextField = new TextField;

t.text = "2599";

//设置字体

var f:TextFormat = new TextFormat;

f.font = "Airal";

f.size = 30;

f.color = 0x00ffff;

f.bold = true;

//将字体设置的文本中

t.setTextFormat(f);

//将文本放到Sprite中

s.addChild(t);

 

 

文本可以显示了

现在我们旋转Sprite

s.rotation = 10;

结果:你会发现文本消失了。

事实上,文本已经存在于rotation=0的位置,它虽然是Sprite的子级,但是不能跟着它旋转。

 

 

方案二:文本能显示,能旋转10度

var s:Sprite = new Sprite;

var t:TextField = new TextField;

t.text = "2599";

var f:TextFormat = new TextFormat;

f.font = "Airal";

f.size = 30;

f.color = 0x00ffff;

f.bold = true;

t.setTextFormat(f);

//将文本转成位图

//t.width,t.height 是文本的像素高度,true表示它为透明, null表示无背景颜色

var b:BitmapData = new BitmapData(t.textwidth, t.textHeight, true, null);

b.draw(t);

//思考一下,t.x设置后再draw, 会对BitmapData有影响吗?----------------------答案:不会有

var m:Bitmap = new Bitmap(b);

m.x = 50;

s.addChild(m);

s.rotation = 10;


能正确旋转了

 

方案三:文本能显示,能旋转10度

var s:Sprite = new Sprite;

var t:TextField = new TextField;

t.text = "2599";

var f:TextFormat = new TextFormat;

f.font = "Airal";

f.size = 30;

f.color = 0x00ffff;

f.bold = true;

t.setTextFormat(f);

var b:BitmapData = new BitmapData(t.width, t.height, true, null);

//如果上面用t.textWidth会怎样?---------------------文本显示不全

b.draw(t);

s.graphic.clear();

s.graphic.beginBitmapFill(b);

s.graphic.drawRect(400, 0, t.textWidth, t.textHeight);//注意,区别 t.textWidth和t.Width

s.graphic. endFill();

s.rotation = 10;


能正确旋转了

 

 

方案四:文本能显示,能自动旋转


//添加TIMER

var tm:Timer = new Timer(50);

tm.start();

tm.addEventListener(TimerEvent.TIMER, timerFun);

 


public function timerFun(ev:TimerEvent):void   // 一定要符合事件函数的写法规范

{

      s.rotation +=10;

}


好了,一切大功告成。

祝你好运~~~~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值