Adobe Flash Builder ve Flash Professional gibi geliştirme araçları, metin görüntüleme için metinle ilgili bileşenler veya metin araçları da dahil olmak üzere birkaç seçenek sağlasa da, programlama yoluyla metin görüntülemenin en basit yöntemi bir metin alanı kullanmaktır.
Metin türleri
Bir metin alanındaki metnin türü, kaynağına göre belirlenir:
-
Dinamik metin
Dinamik metin, bir metin dosyası, XML dosyası veya uzak web hizmeti gibi, harici bir kaynaktan yüklenen içeriği içerir.
-
Girdi metni
Girdi metni, bir kullanıcı tarafından girilen herhangi bir metin veya kullanıcının düzenleyebildiği dinamik metindir. Girdi metnini formatlamak için bir stil sayfası ayarlayabilir veya girdi içeriği için metin alanına özellik atamak üzere flash.text.TextFormat sınıfını kullanabilirsiniz. Daha fazla bilgi için
Metin girdisi yakalama
bölümünü inceleyin.
-
Statik metin
Statik metin yalnızca Flash Professional üzerinden oluşturulur. ActionScript 3.0'ı kullanarak bir statik metin örneği oluşturamazsınız. Ancak, varolan bir statik metin örneğini işlemek için StaticText ve TextSnapshot gibi ActionScript sınıflarını kullanabilirsiniz. Daha fazla bilgi için, bkz.
Statik metinle çalışma
.
Metin alanı içeriğini değiştirme
flash.text.TextField.text
özelliğine bir dize atayarak dinamik metin tanımlayabilirsiniz. Aşağıdaki gibi, bir dizeyi doğrudan özelliğe atayabilirsiniz:
myTextField.text = "Hello World";
Ayrıca aşağıdaki örnekte olduğu gibi,
text
özelliğine, komut dosyanızdaki bir değişkenden bir değer de atayabilirsiniz.
package
{
import flash.display.Sprite;
import flash.text.*;
public class TextWithImage extends Sprite
{
private var myTextBox:TextField = new TextField();
private var myText:String = "Hello World";
public function TextWithImage()
{
addChild(myTextBox);
myTextBox.text = myText;
}
}
}
Alternatif olarak,
text
özelliğine, uzak bir değişkenden bir değer atayabilirsiniz. Uzak kaynaklardan metin değerleri yüklemek için üç seçeneğiniz bulunmaktadır:
-
flash.net.URLLoader ve flash.net.URLRequest sınıfları, yerel veya uzak bir konumdan metin için değişken yükler.
-
FlashVars
niteliği, SWF dosyasını barındıran HTML sayfasına gömülüdür ve metin değişkenleri için değerler içerebilir.
-
flash.net.SharedObject sınıfı, değerlerin kalıcı olarak saklanmasını yönetir. Daha fazla bilgi için, bkz.
Yerel verileri saklama
.
HTML metnini görüntüleme
flash.text.TextField sınıfı, metin dizenizi, içeriği formatlamak için HTML etiketleri içeren bir metin dizesi olarak tanımlamak için kullanabileceğiniz bir
htmlText
özelliğine sahiptir. Aşağıdaki örnekte olduğu gibi, Flash Player veya AIR uygulamasının metni HTML olarak oluşturması için dize değerinizi
htmlText
özelliğine (
text
özelliğine değil) atamanız gerekir:
var myText:String = "<p>This is <b>some</b> content to <i>render</i> as <u>HTML</u> text.</p>";
myTextBox.htmlText = myText;
Flash Player ve AIR,
htmlText
özelliği için bir HTML etiketi ve varlığı altkümesini destekler. ActionScript 3.0 Başvurusu'ndaki
flash.text.TextField.htmlText
özellik tanımı, desteklenen HTML etiketleri ve varlıkları hakkında ayrıntılı bilgiler sağlar.
htmlText
özelliğini kullanarak içeriğinizi belirledikten sonra, içeriğinizin formatlamasını yönetmek için stil sayfalarını veya
textformat
etiketini kullanabilirsiniz. Daha fazla bilgi için, bkz.
Metin biçimlendirme
.
Metin alanlarında görüntü kullanma
İçeriğinizi HTML metni olarak görüntülemenin diğer bir avantajı, metin alanına görüntü ekleyebilmenizdir.
img
etiketini kullanarak yerel veya uzak bir görüntüye başvurabilir ve görüntünün ilişkili metin alanı içinde görünmesini sağlayabilirsiniz.
Aşağıdaki örnek,
myTextBox
adlı bir metin alanı oluşturur ve SWF dosyasıyla aynı dizinde saklanan ve bir göz içeren JPG görüntüsünü görüntülenen metne dahil eder:
package
{
import flash.display.Sprite;
import flash.text.*;
public class TextWithImage extends Sprite
{
private var myTextBox:TextField;
private var myText:String = "<p>This is <b>some</b> content to <i>test</i> and <i>see</i></p><p><img src='eye.jpg' width='20' height='20'></p><p>what can be rendered.</p><p>You should see an eye image and some <u>HTML</u> text.</p>";
public function TextWithImage()
{
myTextBox.width = 200;
myTextBox.height = 200;
myTextBox.multiline = true;
myTextBox.wordWrap = true;
myTextBox.border = true;
addChild(myTextBox);
myTextBox.htmlText = myText;
}
}
}
img
etkiketi, JPEG, GIF, PNG ve SWF dosyalarını destekler.
Bir metin alanında kayan metin
Birçok durumda, metniniz, metni görüntüleyen metin alanından daha uzun olabilir. Veya bir kullanıcının bir defada görüntülenebilecek şekilde daha fazla metin girmesine olanak sağlayan bir girdi alanına sahip olabilirsiniz. Dikey veya yatay olarak uzun içeriği yönetmek için flash.text.TextField sınıfının kaydırma ile ilişkili özelliklerini kullanabilirsiniz.
Kaydırma ile ilişkili özellikler arasında,
TextField.scrollV
,
TextField.scrollH
ile
maxScrollV
ve
maxScrollH
bulunur. Fare tıklatması veya tuşa basılması gibi olaylara yanıt vermek için bu özellikleri kullanın.
Aşağıdaki örnek, belirli bir boyuta sahip olan ve alanın bir defada görüntüleyebileceğinden daha fazla metin içeren bir metin alanı oluşturur. Kullanıcı metin alanını tıklattığında, metin dikey olarak kayar.
package
{
import flash.display.Sprite;
import flash.text.*;
import flash.events.MouseEvent;
public class TextScrollExample extends Sprite
{
private var myTextBox:TextField = new TextField();
private var myText:String = "Hello world and welcome to the show. It's really nice to meet you. Take your coat off and stay a while. OK, show is over. Hope you had fun. You can go home now. Don't forget to tip your waiter. There are mints in the bowl by the door. Thank you. Please come again.";
public function TextScrollExample()
{
myTextBox.text = myText;
myTextBox.width = 200;
myTextBox.height = 50;
myTextBox.multiline = true;
myTextBox.wordWrap = true;
myTextBox.background = true;
myTextBox.border = true;
var format:TextFormat = new TextFormat();
format.font = "Verdana";
format.color = 0xFF0000;
format.size = 10;
myTextBox.defaultTextFormat = format;
addChild(myTextBox);
myTextBox.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownScroll);
}
public function mouseDownScroll(event:MouseEvent):void
{
myTextBox.scrollV++;
}
}
}
|
|
|