我試圖使文本效果在每一幀文本字段增加大小和不透明度下降。我使用我的動態文本字段的scaleX和scaleY屬性來放大,但是這樣做是爲了保持左註冊點的固定。我想讓它沿徑向向外擴大,或者固定中心點。誰能告訴我如何做到這一點?如何使用as3從中心點在Flash中縮放動態文本字段?
0
A
回答
1
可以容易地創建用於TextField
的包裝(即含有TextField
一個Sprite)執行註冊點到中間。如果TextField是動態的,請確保它的autoSize
設置爲LEFT
。此後,您可以將其x/y
位置設置爲-textField.width*.5/-textField.height*.5
。當然,縮放應該應用於父級。
1
textfield.x -= textfield.width /2;
textfield.y -= textfield.height /2;
如果x和y是0,這將有助於
+1
我會''1'而不是'/ 2',所以你不會因爲在一個分數像素混亂的抗鋸齒。這就是說,因爲他無論如何都會調整它,可能無所謂。 –
1
我現在正在做的非常精確。我正在使用Theo.T提到的包裝。
這是我的代碼(大部分):
private function drawText(str:String, size:int = 16, px:int = 0, py:int = 0):void {
var mc:MovieClip = new MovieClip();
var tf:TextFormat = new TextFormat("Verdana", size, _textcolor);
tf.align = "center";
var _txt:TextField = new TextField();
_txt.embedFonts = true;
_txt.wordWrap = true;
_txt.selectable = false;
_txt.autoSize = TextFieldAutoSize.CENTER;
_txt.antiAliasType = "advanced";
_txt.defaultTextFormat = tf;
_txt.width = _textwidth;
_txt.text = str;
_txt.x = -_txt.width/2;
mc.scaleX = mc.scaleY = _scalemin;
mc.x = px;
mc.y = py;
mc.addChild(_txt);
addChild(mc);
startMove(mc);
}
private function moveText(e:Event):void {
var mc:MovieClip = MovieClip(e.target);
if (mc.scaleX >= _scalemax) {
mc.scaleX = mc.scaleY = _scalemax;
} else if (mc.y > _ymin) {
mc.scaleX = mc.scaleY *= _scalegrow;
}
if (mc.alpha <= 0.1) {
mc.removeEventListener(Event.ENTER_FRAME, moveText);
mc.parent.removeChild(mc);
}
}
0
我使用的代碼MGA上面貼和它的作品。我在這裏發佈整個事情,因爲我花了一點時間才弄清楚要做什麼。我注意到的是我不需要嵌入字體來使它起作用。我想知道爲什麼?無論如何,這對我的作品:
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
public class LearningScrollingMain extends MovieClip {
private var _scalemax:Number = 20;
private var _ymin:Number = 10;
private var _scalegrow:Number =1.05;
private var _scalemin:Number=1;
public function LearningScrollingMain() {
drawText("The quick brown fox jumps over the lazy dog", 24, 400, 200);
}
private function drawText(str:String, size:int, px:int, py:int):void {
var mc:MovieClip = new MovieClip();
var tf:TextFormat = new TextFormat();
tf.align = "center";
tf.size=size;
var _txt:TextField = new TextField();
_txt.defaultTextFormat=tf;
// _txt.embedFonts = true;
_txt.wordWrap = false;
_txt.selectable = false;
_txt.autoSize = TextFieldAutoSize.CENTER;
_txt.antiAliasType = "advanced";
_txt.text = str;
_txt.x = -_txt.width/2;
_txt.y = -_txt.height/2;
mc.scaleX = mc.scaleY = _scalemin;
mc.x = px;
mc.y = py;
mc.addChild(_txt);
addChild(mc);
startMove(mc);
}
private function startMove(mc:MovieClip):void {
mc.addEventListener(Event.ENTER_FRAME, moveText);
}
private function moveText(e:Event):void {
var mc:MovieClip = MovieClip(e.target);
if (mc.scaleX >= _scalemax) {
mc.scaleX = mc.scaleY = _scalemax;
} else if (mc.y > _ymin) {
mc.scaleX = mc.scaleY *= _scalegrow;
}
if (mc.alpha <= 0.1) {
mc.removeEventListener(Event.ENTER_FRAME, moveText);
mc.parent.removeChild(mc);
}
}
}
}
相關問題
- 1. Flash:如何在AS3中動態/每動作更改文本字段的textFormat?
- 2. 動態填充Flash中的文本字段(AS3)
- 3. 從子類Flash AS3動態更改文本字段?
- 4. 使用Tween類AS3從中心點開始縮放
- 5. flash動態文本字段
- 6. Flash AS2從中心位置縮放MC
- 7. 避免在Flash CS3中動態更改動態文本字段
- 8. 在as3中隨機添加文本到動態文本字段
- 9. Flash遊戲創建分數動態文本字段(AS3)
- 10. 在AS3中嵌入粗體字體Flash動態字段
- 11. Flash在動態文本字段中顯示奇怪的文本
- 12. Flash AS3 - 在縮放和縮小時縮放播放器中的相機(縮放)
- 13. 如何更改Flash中的動態文本as3?
- 14. 自動縮放TLF文本在AS3
- 15. 在Adobe Flash中使用動態文本旋轉經典文本字段
- 16. 如何跟蹤AS3中動態文本字段中的文本部分
- 17. 在AS3中嵌入字體 - 動態文本字段消失
- 18. 如何停止在Flash CS6 AS3中播放動畫片段(使用Box2D)
- 19. AS3:文本字段活動狀態
- 20. 動態文本字段馬車? AS3
- 21. 如何在Flash中使用AS3動態更改按鈕標籤?
- 22. Flash CS4/AS3動態文本框
- 23. 動態文本中的粗體和常規字體在面具下動態文本在AS3的Flash中
- 24. 如何使用Facebook流行動畫從中心縮放NSView?
- 25. 在as3中更改按鈕內的動態文本字段
- 26. as3 - 在動態文本字段中逗號後添加空格
- 27. 在Flash as3中輸入TLF文本字段的問題Adobe Air
- 28. Flash AS2 - 在循環中創建動態文本字段
- 29. 如何使用AS3清除焦點上的文本字段?
- 30. 在Flash AS3(動態)中的手寫文字效果
把它放在雪碧中,並將註冊點設置到中間位置對我來說是最簡單的修復方法。感謝所有偉大的答案! – Mattk