我曾經知道如何做到這一點,所以,我知道這是可能的,但我不能再弄明白。我通過設置width屬性來改變我TextField的寬度,但是會扭曲文本。我想改變文本字段的寬度而不改變字體的外觀(顯然)。我相信它與自動圖文集或一些這種白癡有關(爲什麼我會想要扭曲我的文本?!),但我無法回想起來。如何在不拉伸文本的情況下更改TextField的寬度?
myField.width = 100; //如果原始寬度爲50,則只需將該字段延伸至100,而不是添加50個可以繪製字符的像素。
TIA
我曾經知道如何做到這一點,所以,我知道這是可能的,但我不能再弄明白。我通過設置width屬性來改變我TextField的寬度,但是會扭曲文本。我想改變文本字段的寬度而不改變字體的外觀(顯然)。我相信它與自動圖文集或一些這種白癡有關(爲什麼我會想要扭曲我的文本?!),但我無法回想起來。如何在不拉伸文本的情況下更改TextField的寬度?
myField.width = 100; //如果原始寬度爲50,則只需將該字段延伸至100,而不是添加50個可以繪製字符的像素。
TIA
我猜你的問題是TextField.defaultTextFormat。
只是設置一個TextFormat對象,然後在你的文本字段上設置默認的文本格式,並且它應該保持文本格式,不管你對它做什麼。
當您更改文本字段的任何內容時,您會看到文本格式被重置並且必須重新應用它。但是,如果您設置默認的文本格式,它會自動處理。
這是一個骯髒的小原型。
package src
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
public class Main extends Sprite
{
private var tx:TextField;
private var txf:TextFormat;
public function Main()
{
addEventListener(Event.ADDED_TO_STAGE, initMain);
}
private function initMain(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, initMain);
// setup a text format so you can keep your text the same all the time.
txf = new TextFormat('Arial', 12, 0x000000);
tx = new TextField();
tx.width = 50;
tx.text = "I want this text not to wrap so it will be resized at runtime."
// Turned this on for testing purposes only.
tx.wordWrap = true;
tx.defaultTextFormat = txf; // This line is the x factor most likely.
tx.x = 100;
tx.y = 100;
addChild(tx);
stage.addEventListener(MouseEvent.CLICK, toggleTextFieldSize, false, 0 ,true);
}
private function toggleTextFieldSize(e:MouseEvent):void
{
if (tx.width == 50)
{
tx.width = 400;
}
else
{
tx.width = 50;
}
}
}
}
希望這是你正在尋找的。
您在IDE中是否正確? 嘗試雙擊文本字段,然後使用文本框右側的框來調整整個事物的大小,而不會拖動文本。
**編輯**
這裏是如何調整一個TextField工作的代碼示例:
http://wonderfl.net/c/qbDv
但這只是與動態的TextField工作。使用代碼創建的TF可以是DYNAMIC或INPUT,但是在IDE中可以創建靜態TF,並且不能通過ActionScript調整大小。所以你必須改變TextField的類型或者通過腳本創建TF。
在IDE中,您需要
a)雙擊文本字段。這將使您進入文本字段的編輯模式。然後調整它的大小。
或
b)選擇文本工具,然後調整它的大小。
使用變換工具將增加寬度,好像它是一個形狀調整其大小(這是在一些動畫非常有用的,所以它不是真正的是白癡)
對不起,我想我不清楚,我會編輯我的問題,我在運行時在代碼中更改寬度,而不是在IDE中。 – 2012-02-25 15:48:38
另一種解決方案將是使用一個包裝對於文本字段,像Group
元素,並且只是增加其寬度。
no no ...我改變了代碼的寬度(因此在這個問題中的AS3標籤)。 – 2012-02-25 15:47:57
這是一個動態的TextField嗎?那麼這應該工作。 – pkyeck 2012-02-25 16:54:41
我同意它*應該可以工作,但它不起作用。該字段最初是在IDE中創建的,但隨後在代碼中進行了更改,隨後而不是越來越寬地延伸文本。 – 2012-02-25 17:58:53