flash text engine 入門筆記(二)

2021-05-23 11:14:01 字數 2101 閱讀 7670

回顧一下flash .text.textfield這個類,在**混排的時候存在什麼缺陷?

相信很多人都認為其結構描述能力太差,不支援inline,而且要更換文字域內的也會顯得非常麻煩(雖然flash.text.engine也不見得簡單)。

首先介紹下graphicelement類,此類顧名思義就是乙個影象元素,純屬乙個表現型的元素,相當於html中的img,只是其不具備讀取影象功能,只能通過loader將外部讀取,然後把loader作為其content。

看看如下例項** :

//繪製乙個紅色矩形來作為我們的

var shape:shape = new shape();

shape.graphics.beginfill(0xff0000);

shape.graphics.drawrect(0, 0, 100, 100);

shape.graphics.endfill();

//建立乙個影象元素,並將我們的shape作為其顯示的內容,同時也可以成為乙個loader

var graphicele:graphicelement = new graphicelement(shape, shape.width, shape.height);

//建立乙個文字塊,用於裝載影象元素並輸出行

var textblock:textblock = new textblock();

textblock.content = graphicele;

var textline:textline = textblock.createtextline(null, 200);

textline.x = 100;

textline.y = 100;

addchild(textline);

上面的例子已經簡單介紹了graphicelement類的使用方法,那麼如何實現inline的**混排呢?在flash.text.engine裡提供了乙個groupelement類,通過其能將所有的元素組合起來,再看如下**:

//繪製乙個紅色矩形來作為我們的

var shape:shape = new shape();

shape.graphics.beginfill(0xff0000);

shape.graphics.drawrect(0, 0, 100, 100);

shape.graphics.endfill();

//建立乙個影象元素,並將我們的shape作為其顯示的內容,同時也可以成為乙個loader

var graphicele:graphicelement = new graphicelement(shape, shape.width, shape.height);

//建立乙個文字元素

var format:elementformat = new elementformat(new fontdescription("arial"));

format.fontsize = 12;

var textele:textelement = new textelement("hello world!", format);

//把所有剛剛建立的元素丟到乙個vector裡面,並且組合成乙個組元素

var elevector:vector.= new vector.();

elevector.push(textele, graphicele);

var groupele:groupelement = new groupelement(elevector);

//建立乙個文字塊,用於裝載影象元素並輸出行

var textblock:textblock = new textblock();

textblock.content = groupele;

var textline:textline = textblock.createtextline(null, 300);

textline.x = 100;

textline.y = 100;

addchild(textline);

通過如上的**,各位看官應該能對flash.text.engine有了個大體的認識了吧,至於排版的細節,相信也不需要小弟在這裡贅述了,因為textline更搞定一切,加上小弟才疏學淺,還不如各位看官直接查閱幫助文件的屬性來得有效。

筆記 docker入門筆記

安裝 sudo apt get remove docker docker engine docker ce docker.io sudo apt get update sudo apt get install y apt transport https ca certificates curl so...

Python 入門筆記

前一段時間看了九天雁翎 http hi.csdn.net vagrxieeasy but powerful 總體感覺python的庫功能極其強大,這樣使得python 密度很高,用c 10行實現的內容,python可能不到3行就能實現了。當然這樣會損失一些效率,但是實現一些小的應用軟體不會有什麼問題...

Oracle入門筆記

剛開始使用oracle,做一些筆記以積累。2009年11月6日 專案dssc,伺服器上建立資料庫並匯入資料。建立表空間 create tablespace ts stone logging datafile dbf size 100m autoextend on next 100m maxsize ...