亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > Flex > 正文

Flex 非常實用的資料

2024-09-12 17:51:06
字體:
供稿:網(wǎng)友
【改變輸出swf的尺度,背景顏色或幀頻】
在"Navigator"窗框里右鍵你的項目>選中"Properties">選中"ActionScript Compiler">在"Additional compiler arguments"里輸入你所需要的命令
如想改變背景顏色,請輸入: -default-background-color 0xffffff
【鼠標(biāo)坐標(biāo)】
mouseX mouseY
【檢查變量類型并返回布爾值】
is
【檢查變量類型并返回類型】
typeof
【檢查對象類型并返回該對象】
as
【是數(shù)字但不是有效數(shù)字問題】
var quantity:Number = 15 - "rabbits";
trace(typeof quantity); //顯示: "number" , 但它是NaN (not a number)
trace(quantity is Number); //true
trace(quantity != NaN); //false
//使用isNaN()函數(shù)檢測:
isNaN(quantity); //true
//檢測變量是否內(nèi)含有效數(shù)字:
!isNaN(quantity); //false
【取消默認(rèn)的嚴(yán)格編譯模式】
在"Navigator"窗框里右鍵你的項目>選中"Properties">選中"ActionScript Compiler">取消"Enabel compile-time type checking"選項
【基元數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型好比"值類型"和"引用類型"】
基元數(shù)據(jù)類型類似按值傳遞:
var intOne:int = 1;
var intTwo:int = 1;
trace(intOne == intTwo); //true
【復(fù)雜數(shù)據(jù)類型類似按引用傳遞】
var arrayOne:Array = new Array("a", "b");
var arrayTwo:Array = arrayOne;
trace(arrayOne == arrayTwo); //true
//-----------------------------------
var arrayOne:Array = new Array("a", "b");
var arrayTwo:Array = new Array("a", "b");
trace(arrayOne == arrayTwo); //false
【優(yōu)化邏輯AND(&&)和OR(||)的小知識】
對于邏輯And(&&):
除非條件表達(dá)式的前半部分為真,否則,ActionScript不會再去求算邏輯AND運算符的后半部.如果前半部為假,整個條件表達(dá)式一定為假,所以再去求算后半部就沒效率了.
對于邏輯OR(||):
除非條件表達(dá)式前半部為假,否則,ActionScript不會再去求算邏輯OR運算符的后半部,如果前半部為真,整個條件表達(dá)式一定為真.
總結(jié):使用邏輯AND(&&)時,把結(jié)果最可能為false的表達(dá)式放到前面;使用邏輯OR(||)時,把結(jié)果最可能為true的表達(dá)式放到前面.
【Timer類注意事項】
不要認(rèn)為Timer可以極其準(zhǔn)確;使用Timer時間間隔不要低于10毫秒.
【private,protected,internal,public訪問權(quán)限】
private:只能在類本身內(nèi)部訪問,按慣例,命名私有成員時以下劃線"_"開頭;
protected:可以由類本身或任何子類訪問.但這是以實例為基礎(chǔ)的.換言之,類實例可以訪問自己的保護成員或者父類的保護成員,但不能訪問相同類的其它實例的保護成員,按慣例,命名保護成員時以下劃線"_"開頭;
internal:可以由類本身或者相同包內(nèi)的任何類訪問;
public:可以在類內(nèi)部訪問,也可以由類實例訪問,或者聲明為static時,可以直接從類訪問.
【一個函數(shù)具有未知個數(shù)的參數(shù),用arguments對象或"...(rest)"符號訪問它的參數(shù)】
注意:使用"...(rest)"參數(shù)會使 arguments 對象不可用;
private funciton average():void{
trace(arguments.length); //輸出參數(shù)的個數(shù)
// arguments的類型是:object,但可以像訪問數(shù)組一樣去訪問它
trace(arguments[1]); //輸出第二個參數(shù)
}
private function average(...argu):void{
trace(argu[1]); //輸出第二個參數(shù),argu參數(shù)名是自定義的.
}
【錯誤處理try,catch,finally】
private function tryError():void{
try {
trace("測試開始-try");
throwError();
}catch(errObject:Error) {
trace("錯誤信息:" + errObject.message);
trace("測試結(jié)束-catch");
return;
}finally{
trace("雖然catch里已經(jīng)有return方法,但位于return方法后面的finally里的代碼依然會被執(zhí)行.其實無論return方法是在try里,還是catch里,finally里的代碼始終會被執(zhí)行");
}
trace("前面已經(jīng)有return了,此處是不會再執(zhí)行的.除非沒有拋出錯誤,以使catch里的代碼沒有被執(zhí)行");
}
private function throwError():void{
throw new Error("拋出錯誤");
}
【for...in與for each...in的區(qū)別】
與for...in循環(huán)不同的是,for each...in循環(huán)中的迭代變量包含屬性所保存的值,而不包含屬性的名稱(或主鍵,索引).
【命名包路徑的小技巧】
使用相應(yīng)于擁有者和相關(guān)項目的包名稱會比較好.按慣例來講,包名稱的開頭應(yīng)該是逆向的網(wǎng)址名稱.例如,如果Example Corp(examplecorp.com)寫了一些ActionScript3.0類,就會把所有類放在com.examplecorp包內(nèi)(或者 com.examplecorp的子包內(nèi)).如此一來,如果英國有另一家Example Corp(examplecorp.co.uk)也寫了一些ActionScript3.0類,只要使用包uk.co.examplecorp,就可確保唯一性.
當(dāng)類屬于特定應(yīng)用程序的一部分時,就應(yīng)該放在該應(yīng)用程序特定的子包內(nèi).例如,Example Corp可能有個應(yīng)用程序名叫WidgetStore.如果WidgetStore應(yīng)用程序使用一個名為ApplicationManager的類,則此類就應(yīng)該放在com.examplecorp.widgetstore包內(nèi),或者位于該包的子包內(nèi).
按慣例來說,包名稱的開頭是小寫字母.
【隱式的取出方法(getter)和設(shè)定方法(setter)】
public function get count():uint {
return _count;
}
public function set count(value:uint):uint {
if(value < 100){
_count = value;
}else {
throw Error();
}
}
【確保類是絕不會有子類,使用final】
final public class Example{}
【super關(guān)鍵字的使用】
super(); //父類的構(gòu)造函數(shù),只能在類實例構(gòu)造函數(shù)內(nèi)部使用
super.propertyName; //調(diào)用父類的屬性,屬性需要聲明為public或protected
super.methodName(); //調(diào)用父類的方法,方法需要聲明為public或protected
【建立常數(shù),使用關(guān)鍵字const而不是var】
static public const EXAMPLE:String = "example";
【檢測播放器版本】
flash.system.Capabilities.version
對于8.5版以前的任何Flash Player版本,這種方法都不適用.
【判斷客戶端系統(tǒng)】
flash.system.Capabilities.os
【檢測播放器類型】
flash.system.Capabilities.playerType
可能的值有:
"StandAlone",用于獨立的 Flash Player
"External",用于外部的 Flash Player 或處于測試模式下
"PlugIn",用于 Flash Player 瀏覽器插件
"ActiveX",用于 Microsoft Internet Explorer 使用的 Flash Player ActiveX 控件
【檢測系統(tǒng)語言】
flash.system.Capabilities.language
【判斷用戶是否啟用了IME(輸入法編輯器)】
flash.system.IME.enabled
【檢測屏幕的分辨率】
flash.system.Capabilities.screenResolutionX
flash.system.Capabilities.screenResolutionY
【把彈出窗口居中的算法】
X = (舞臺寬/2)-(窗口寬/2)
Y = (舞臺高/2)-(窗口高/2)
【控制影片配合Player的方式,包括縮放問題】
stage.scaleMode
可供選擇值:flash.display.StageScaleMode
【舞臺的對齊方式】
stage.align
可供選擇值:flash.display.StageAlign
【隱藏Flash Player的右鍵菜單】
stage.showDefaultContextMenu = false;
【檢測系統(tǒng)是否具有音頻功能】
flash.system.Capabilities.hasAudio
【檢測播放器是在具有MP3解碼器的系統(tǒng)上運行,還是在沒有MP3解碼器的系統(tǒng)上運行】
flash.system.Capabilities.hasMP3
【檢測播放器能 (true) 還是不能 (false) 播放流式視頻】
flash.system.Capabilities.hasStreamingVideo
【檢測播放器是在支持 (true) 嵌入視頻的系統(tǒng)上運行,還是在不支持 (false) 嵌入視頻的系統(tǒng)上運行】
flash.system.Capabilities.hasEmbeddedVideo
【檢測播放器能 (true) 還是不能 (false) 對視頻流(如來自 Web 攝像頭的視頻流)進行編碼】
flash.system.Capabilities.hasVideoEncoder
【顯示 Flash Player 中的"安全設(shè)置"面板】
flash.system.Security.showSettings();
可供選擇項:flash.system.SecurityPanel
【讓其它域的.swf訪問本域的.swf】
在本域的.swf文件里加上:flash.system.Security.allowDomain()
或者使用安全策略文件"crossdomain.xml".在Flash 8以前,這個文件必須放在.swf所在域的根目錄,現(xiàn)在,你可以使用flash.system.Security.loadPolicyFile(),指定安全策略文件所在的位置.拒絕任何域的做法是在<cross-domain-policy>標(biāo)簽內(nèi)什么也不填,安全策略文件也支持通用字符 "*":
<?xml version="1.0"?>
<!-- http://www.mydomain.com/crossdomain.xml -->
<cross-domain-policy>
<allow-access-from domain="www.riahome.cn" />
<allow-access-from domain="*.Y-boy.cn" />
<allow-access-from domain="210.38.196.48" />
<allow-access-from domain="*" />
</cross-domain-policy>
【數(shù)字的不同進制之間的轉(zhuǎn)換】
parseInt(str:String, radix:uint = 0):Number 返回十進制的數(shù),參數(shù)radix表示要分析的數(shù)字的基數(shù).如果省略radix,就默認(rèn)為10,除非字符串的開頭是"0x","0X"或"0":
trace(parseInt("0x12")); //設(shè)定radix為16,輸出:18
trace(parseInt("017")); //設(shè)定radix為8,輸出:15
或者使用Number,uint和int對象的toString(radix)方法.
【使用Math.round()對一個數(shù)取整,四舍五入】
Math.round()
trace(Math.round(204.499)); //輸出:204
trace(Math.round(401.5)); //輸出:402
【使用Math.floor()對一個數(shù)向下取整,就是只要整數(shù)部分而不理會小數(shù)分】
trace(Math.floor(204.99)); //輸出:204
【使用Math.ceil()對一個數(shù)向上取整,只要小數(shù)部分不為零,整數(shù)部分就加1】
trace(Math.ceil(401.01)); //輸出:402
【產(chǎn)生一個隨機數(shù)】
使用Math.random()產(chǎn)生一個偽隨機數(shù)n,其中 0 <= n < 1
【把數(shù)字取至最近的小數(shù)點位,即指定精確度】
1. 決定你要取的數(shù)字的小數(shù)點位數(shù):例如,如果你想把90.337取成90.34,就表示你要取到兩位小數(shù)點位,也就是說你想取至最近的0.01;
2. 讓輸入值除以步驟1所選的數(shù)字(此例為0.01);
3. 使用Math.round()把步驟2所計得的值取成最近的整數(shù);
4. 把步驟3所得的結(jié)果乘以步驟2用于除法的那個值.
例如,要把90.337取成兩個小數(shù)點位數(shù),可以使用:
trace(Math.round(90.337/0.01)*0.01); //輸出:90.34
【把數(shù)字取成一個整數(shù)的最接近倍數(shù)值】
例1,這樣會把92.5取成5的最近倍數(shù)值:
trace(Math.round(92.5/5)*5); //輸出:95
例2,這樣會把92.5取成10的最近倍數(shù)值:
trace(Math.round(92.5/10)*10); //輸出:90
【在指定數(shù)值范圍內(nèi)獲得隨機數(shù)】
//可取范圍:[min, max]
private function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;
}
應(yīng)用例子:
模擬投銀幣,即希望得到隨機布爾值(true 或 false): randRange(0, 1);
模擬投骰子,即希望得到隨機六個值: randRange(1, 6);
為避免被緩存而需要產(chǎn)生一個獨一無二的數(shù)字追加在URL尾端,通常最佳方法是取得當(dāng)前毫秒數(shù).
【弧度(radian)與度數(shù)(degree)之間的轉(zhuǎn)換】
從弧度轉(zhuǎn)為度數(shù): degrees = radians * 180 / Math.PI
從度數(shù)轉(zhuǎn)為弧度: radians = degrees * Math.PI / 180
【計算兩點之間的距離】
勾股定理: c2 = a2 + b2
假設(shè)有兩個影片剪輯mc1和mc2,則它們兩點間的距離c為:
var c:Number = Math.sqrt(Math.pow(mc1.x - mc2.x, 2) + Math.pow(mc1.y - mc2.y, 2));
【模擬圓周運動】
已知圓心o(x0, y0),半徑r和弧度angle,求圓上任意一點P(x, y)的坐標(biāo):
x = x0 + (Math.cos(angle) * r);
y = y0 + (Math.sin(angle) * r);
注意:舞臺的x軸正方向水平向右,y軸正方向垂直向下.
【模擬橢圓運動】
已知圓心o(x0, y0),長軸a,短軸b以及弧度angle,求圓上任意一點P(x, y)的坐標(biāo):
x = x0 + (Math.cos(angle) * a);
y = y0 + (Math.sin(angle) * b);
【華氏溫度和攝氏溫度之間的轉(zhuǎn)換】
華氏溫度 = 攝氏度數(shù) * 9 / 5 + 32
攝氏溫度 = (華氏度數(shù) - 32) * 5 /9
【公斤與磅之間的轉(zhuǎn)換】
公斤 = 磅 * 2.2
磅 = 公斤 / 2.2
【向數(shù)組尾端添加元素】
var array:Array = new Array();
array.push("a", "b");
//向數(shù)組尾端添加單一元素也可以這樣:
array[array.length] = "c";
//如果以索引設(shè)定的元素不存在,數(shù)組本身會自動擴展以包含足夠的元素數(shù)目.介于中間的元素會被設(shè)為undefined:
array[5] = "e";
trace(array[4]); //輸出: undefined
【向數(shù)組開端添加元素】
var array:Array = ["a", "b"];
array.unshift("c", "d");
trace(array); //輸出: c,d,a,b
【刪除數(shù)組中第一個元素并返回該元素,使用shift()方法】
var letters:Array = new Array("a", "b", "c");
var firstLetter:String = letters.shift();
trace(letters); //輸出: b,c
trace(firstLetter); //輸出: a
【刪除數(shù)組中最后一個元素并返回該元素的值,使用pop()方法】
var letters:Array = new Array("a", "b", "c");
trace(letters); //輸出: a,b,c
var letter:String = letters.pop();
trace(letters); //輸出: a,b
trace(letter); //輸出: c
【刪除數(shù)組中的元素,給數(shù)組添加新元素并返回刪除的元素,使用splice()方法】
splice(startIndex:int, deleteCount:uint, ... values):Array
startIndex: 一個整數(shù),它指定數(shù)組中開始進行插入或刪除的位置處的元素的索引;
deleteCount: 一個整數(shù),它指定要刪除的元素數(shù)量;
... values: 用逗號分隔的一個或多個值的可選列表或數(shù)組,此列表或數(shù)組將插入到此數(shù)組中由 startIndex 參數(shù)指定的位置.
【查找數(shù)組中第一個相匹配的元素】
var array:Array = ["a", "b", "c", "d", "a", "b", "c", "d"];
var match:String = "b";
for(var i:int = 0; i < array.length; i++) {
if(array[i] == match) {
trace("Element with index " + i + " found to match " + match);
//輸出: Element with index 1 found to match b
break;
}
}
【查找數(shù)組中最后一個相匹配的元素】
var array:Array = ["a", "b", "c", "d", "a", "b", "c", "d"];
var match:String = "b";
for(var i:int = array.length - 1; i >= 0; i--) {
if(array[i] == match) {
trace("Element with index " + i + " found to match " + match);
//輸出: Element with index 5 found to match b
break;
}
}
【把字符串轉(zhuǎn)成數(shù)組】
使用String.split()方法:
var list:String = "I am YoungBoy.";
var words:Array = list.split(" "); //以空格作為分隔符將字符串切割
trace(words); //輸出: I,am,YoungBoy.
【把數(shù)組轉(zhuǎn)成字符串】
使用String.join()方法:
var myArr:Array = new Array("one", "two", "three");
var myStr:String = myArr.join(" and ");
trace(myArr); //輸出: one,two,three
trace(myStr); //輸出: one and two and three
【使用對象數(shù)組處理相關(guān)數(shù)據(jù)】
var cars:Array = new Array();
cars.push({make:"Mike", year:1997, color:"blue"});
cars.push({make:"Kelly", year:1986, color:"red"});
for(var i:int = 0; i < cars.length; i++) {
trace(cars[i].make + " - " + cars[i].year + " - " + cars[i].color);
}
//輸出:
// Mike - 1997 - blue
// Kelly - 1986 - red
【在數(shù)組中獲取最小或最大值】
var scores:Array = [10, 4, 15, 8];
scores.sort(Array.NUMERIC);
trace("Minimum: " + scores[0]);
trace("Maximum: " + scores[scores.length - 1]);
【使用for ... in語句讀取關(guān)聯(lián)數(shù)組元素】
var myObject:Object = new Object();
myObject.name = "YoungBoy";
myObject.age = 20;
for(var i:String in myObject) {
trace(i + ": " + myObject[i]);
}
//輸出: name: YoungBoy
// age: 20
注意: for ... in循環(huán)不會顯示對象所有的內(nèi)建屬性.例如,循環(huán)會顯示執(zhí)行期間新增的特殊屬性,但是,不會列出內(nèi)建對象的方法,即使都是儲存在對象屬性內(nèi).
【AVM(ActionScript Virtual Machine,虛擬機)和渲染引擎(Rendering Engine)】
AVM負(fù)責(zé)執(zhí)行ActionScript程序,而渲染引擎則是把對象繪制在顯示器上.
【指出容器的顯示清單中有多少顯示對象】
每個容器都有numChildren屬性.
【把項目新增至顯示清單】
addChild(child:DisplayObject)
addChildAt(child:DisplayObject, index:int)
index: 添加該子項的索引位置.如果指定當(dāng)前占用的索引位置,則該位置以及所有更高位置上的子對象會在子級列表中上移一個位置.
【從顯示清單中移除項目】
removeChild(child:DisplayObject)
removeChildAt(index:int)
index: 要刪除的 DisplayObject 的子索引,該子項之上的任何顯示對象的索引位置都減去1.
如果想移除窗口所有子元件,可以結(jié)合removeChildAt(),numChildren屬性以及for循環(huán).因為每次一個子元件被移除時,索引位置都會變化,所以,有兩種方法可以處理所有子元件的移除:
1. 總是移除位置0的子元件;
2. 倒過來移除子元件,也就是從尾端開始.
【更改現(xiàn)有子項在顯示對象容器中的位置】
setChildIndex(child:DisplayObject, index:int):void
可能用到的方法:
返回 DisplayObject 的 child 實例的索引位置: getChildIndex(child:DisplayObject):int
返回位于指定索引處的子顯示對象實例: getChildAt(index:int):DisplayObject
注意: 當(dāng)子元件移到低于它現(xiàn)在所在位置的索引時,那么,從標(biāo)的索引起,直到子元件索引前面的那個索引的所有子元件都會令其索引增加1,而該子元件就會指定至標(biāo)的索引.當(dāng)子元件移到較高索引時,從該子元件索引之上的那個索引起,直到標(biāo)的索引的所有子元件都會令其索引往下減1,而該子元件就會指定至標(biāo)的索引值.
【關(guān)于TextField以垂直方式把文字?jǐn)[在按鈕表面中心點的小技巧】
textField.y = (_height - textField.textHeight) / 2;
textField.y -= 2; //減2個像素以調(diào)整偏移量
【外部.swf影片載入和互動】
1. 監(jiān)聽init事件;
2. 透過content屬性存取所載入的影片.
當(dāng)所載入的影片做好足夠的初始化工作,使其方法和屬性可以接受互動時,init事件就會被發(fā)起.只有在載入器發(fā)起init事件后,才能控制影片.所載入的影片還沒初始化就試著與它互動,是會產(chǎn)生執(zhí)行期間錯誤的.
_loader.contentLoaderInfo.addEventListener(Event.INIT, handleInit); //當(dāng)載入的.swf的屬性和方法可用時
_loader.load(new URLRequest("ExternalMovie.swf"));
private function handleInit(event:Event):void {
var movie:* = _loader.content;
trace(movie.getColor());
movie.setColor(0xFF0000);
}
【TextField有兩種類型:動態(tài)(dynamic)和輸入(input),默認(rèn)值為動態(tài).改變TextField類型方法】
field.type = TextFieldType.INPUT; //selectable屬性默認(rèn)值為true
flash.text.TextFieldType.INPUT和flash.text.TextFieldType.DYNAMIC
【過濾文字輸入】
TextField.restrict = "此處為可輸入的內(nèi)容";
field.restrict = "^此處為禁止輸入的內(nèi)容";
restrict屬性支持一些類似正則表達(dá)式的樣式:
field.restrict = "a-zA-z"; //只允許大小字母
field.restrict = "a-zA-z "; //只允許字母和空格
field.restrict = "0-9"; //只允許數(shù)字
field.restrict = "^abcdefg"; //除了小寫字母abcdefg不允許外,其它都允許
field.restrict = "^a-z"; //所有小寫字母都不允許,但是,其它內(nèi)容都允許,包括大寫字母
field.restrict = "0-9^5"; //只允許數(shù)字,但5例外
讓restrict字符包含具有特殊意義的字母(例如-和^):
field.restrict = "0-9//-"; //允許數(shù)字和破折號
field.restrict = "0-9//^"; //允許數(shù)字和^
field.restrict = "0-9////"; //允許數(shù)字和反斜杠
你也可以使用Unicode轉(zhuǎn)義序列,指定允許的內(nèi)容.例如:
field.restrict = "^/u001A";
注意:ActionScript有區(qū)分大小寫的,如果restrict屬性設(shè)為abc,允許字母的大寫形式(A,B和C)輸入時會變成小寫對待形式(a,b和c),反之亦然.restrict屬性只影響用戶可以輸入的內(nèi)容,腳本可將任何文本放入文本字段中.
【設(shè)定輸入框的最大長度】
TextField.maxChars:int
【向TextField追加內(nèi)容】
TextField.appendText(text:String):void
與通過對 text 屬性使用加法賦值來連接兩個字符串(例如 field.text += moreText)相比,此方法的效率更高.
【顯示HTML格式的文字】
TextField.htmlText = "<b>Html text</b>";
支持的HTML標(biāo)簽集有: <b>,<i>,<u>,<font>(有face,size以及color屬性),< p>,<br>,<a>,<li>,<img>以及<textformat>(有 leftmargin,rightmargin,blockindent,indent,leading以及tabstops屬性,相應(yīng)于 TextFormat類的同名屬性)
【縮減空白】
TextField.condenseWhite = true;
刪除具有HTML文本的文本字段中的額外空白(空格,換行符等),如同多數(shù)HTML瀏覽器所做的那樣.
注意: 在設(shè)置 htmlText 屬性之前設(shè)置 condenseWhite 屬性
【自動大小調(diào)整和對齊】
TextField.autoSize = TextFieldAutoSize.LEFT;
可選之值:
flash.text.TextFieldAutoSize.CENTER
flash.text.TextFieldAutoSize.LEFT
flash.text.TextFieldAutoSize.NONE
flash.text.TextFieldAutoSize.RIGHT
【指示文本字段是否自動換行】
TextField.wordWrap = true; //自動換行
【用程序手段滾動文字】
水平方向以像素為單位,而垂直方向以行做單位:
scrollV: 指出文字框可見區(qū)域的最頂行,可讀寫;
bottomScrollV: 指出文字框內(nèi)最底端可見行,只讀;
maxScrollV: scrollV的最大值,只讀;
numLines: 定義多行文本字段中的文本行數(shù),只讀;
TextField.scrollV = field.maxScrollV; //滾動到最后一頁
【響應(yīng)滾動事件】
field.addEventListener(Event.SCROLL, onTextScroll);
【樣式化文字的方法】
1. 使用HTML標(biāo)簽進行樣式化;
2. 使用TextFormat對象;
3. 使用CSS.
例如: HTML是用<font>標(biāo)簽,TextFormat對象是設(shè)定font屬性,而CSS是使用font-family屬性的.
受支持的層疊樣式表(CSS)屬性和值,及其相應(yīng)的ActionScript屬性名稱(小括號內(nèi)):
color(color),display(display),font-family(fontFamily),font-size(fontSize),font-style(fontStyle),font-weight(fontWeight),kerning(kerning),leading(leading),letter-spacing(letterSpacing),margin-left(marginLeft),margin-right(marginRight),text-align(textAlign),text-decoration(textDecoration),text-indent(textIndent)
受支持的HTML實體: <(小于號: <), >(大于號: >), &(和: &), "(雙引號: "), '(撇號,單引號: ')
其中樣式對象的兩種寫法:
寫法一:
var sampleStyle:Object = new Object();
sampleStyle.color = "#FFFFFF";
sampleStyle.textAlign = "center";
css.setStyle(".sample", sampleStyle);
寫法二:
var sampleStyle:Object = {color: "#FFFFFF", textAlign: "center"};
css.setStyle(".sample", sampleStyle);
【對用戶輸入的文字進行樣式化】
使用defaultTextFormat屬性,樣式會施加至用戶鍵入輸入框的文字身上:
var formatter:TextFormat = new TextFormat();
formatter.color = 0x0000FF; //把文字變成藍(lán)色
field.defaultTextFormat = formatter;
【對現(xiàn)有文字的一部分進行樣式化】
TextFormat.setTextFormat(format:TextFormat, beginIndex:int = -1, endIndex:int = -1):void
【設(shè)定文字框的字體】
例子:
HTML: field.htmlText = "<font face='Arial'>Formatted text</font>";
TextFormat: formatter.font = "Arial";
CSS: P{ font-family: Arial; }
也可以使用以逗號隔開的字體清單: formatter.font = "Arial, Verdana, Helvetica";
注意:
字體和字體群組不同.字體群組有三種: _sans,_serif以及_typewriter.
_sans群組一般就是指Arial或Helvetica這種字體;
_serif群組一般就是指Times或Times New Roman這種字體;
_typewriter群組一般就是指Courier或Courier New這種字體.
【嵌入字體】
使用[Embed]后設(shè)標(biāo)簽.[Embed]后設(shè)標(biāo)簽應(yīng)該出現(xiàn)在ActionScript文件中,處于類宣告之外.你可以內(nèi)嵌TrueType字體或系統(tǒng)字體.內(nèi)嵌TrueType字體時的語法:
[Embed(source="pathToTtfFile", fontName="FontName", mimeType="application/x-font-truetype")]
pathToTtfFile: ttf文件的路徑,TrueType字體的路徑可以是相對的,也可以是絕對的;
FontName: 字體名稱;
內(nèi)嵌系統(tǒng)字體的語法:
[Embed(systemFont="Times New Roman", fontName="Times New Roman", mimeType="application/x-font-truetype")]
fontName: 以相同名稱作為實際系統(tǒng)字體名稱.
注意: 在使用嵌入字體時,要把TextField的embedFonts屬性設(shè)為true,這樣TextField只能用內(nèi)嵌字體了.如果你試著替 embedFonts設(shè)為true的TextField使用設(shè)備字體,什么都不會顯示.如果embedFonts設(shè)為true,就無法指定以逗號相隔的字體清單.
【建立可以旋轉(zhuǎn)的文字】
使用內(nèi)嵌字體.當(dāng)你旋轉(zhuǎn)文字框時,設(shè)備字體就會消失.
【顯示Unicode文字】
1. 從外部來源載入Unicode文字;
2. 假如你的編輯器支持Unicode(如 Flex Builder),則可以直接在ActionScript程序中使用該字符;
3. 使用Unicode轉(zhuǎn)義字符,ActionScript里所有Unicode轉(zhuǎn)義字符都以/u開頭,后面再跟四位十六進制數(shù)字.
注意: 如果你想取得Unicode字符,在Windows下使用: 開始>所有程序>附件>系統(tǒng)工具>字符映射表.
【把Flash Player的焦點帶給文字框】
stage.focus = field;
把焦點移除:
stage.focus = null;
注意: 當(dāng).swf文件首次載入至網(wǎng)頁瀏覽器時,并沒有焦點.因此,以程序的方式把焦點指定給Flash應(yīng)用程序的一個元素前,必須先把焦點移至Flash Player.
【以ActionScript選取文字】
使用TextField.setSelection(beginIndex:int, endIndex:int):void
為了可以正常選取文字,文字框必須具有焦點:
stage.focus = field; //把焦點設(shè)給文字框
field.text = "This is example text"; //設(shè)定文字
field.setSelection(0, 4); //把"This"這個單詞以高亮顯示
使用只讀的selectionBeginIndex和selectionEndIndex屬性訪問所選取的字符范圍的索引.
【在文字內(nèi)設(shè)定安插點(游標(biāo)位置)并訪問游標(biāo)位置的索引值】
可以使用TextField.setSelection()把起始和結(jié)尾的索引參數(shù)都設(shè)成相同值,在文字內(nèi)設(shè)定游標(biāo)位置(假設(shè)具有焦點):
field.setSelection(0, 0); //在第一個字符前擺放安插點
trace(field.caretIndex); //輸出游標(biāo)位置的索引值
【當(dāng)文本字段受到選取或取消選取時給予響應(yīng)】
獲得焦點時: FocusEvent.FOCUS_IN
失去焦點時: FocusEvent.FOCUS_OUT
通過鍵盤(Tab鍵)把焦點移除時: FocusEvent.KEY_FOCUS_CHANGE
通過鼠標(biāo)把焦點移除時: FocusEvent.MOUSE_FOCUS_CHANGE
FocusEvent 類有一個relatedObject屬性.就FOCUS_IN事件而言,relatedObject屬性是剛才擁有焦點的對象的引用地址;對于 FOCUS_OUT,KEY_FOCUS_CHANGE以及MOUSE_FOCUS_CHANGE事件,relatedObject屬性是剛接收到焦點的對象的引用地址.
FOCUS_IN和FOCUS_OUT事件都是在焦點改變后發(fā)生的,所以兩者都是不可取消的事件.對于KEY_FOCUS_CHANGE和MOUSE_FOCUS_CHANGE事件,可以使用FocusEvent.preventDefault()方法取消默認(rèn)行為:
field.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, onKeyFocus);
private function onKeyFocus(event:FocusEvent):void {
if(field.text == "") {
event.preventDefault(); //當(dāng)field沒有任何文字前,不允許使用Tab鍵把焦點移除
}
//event.relatedObject就是剛才擁有焦點的對象的引用地址,即下一個獲得焦點的對象的引用地址
}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
毛片免费在线观看| 欧美国产日本高清在线| 欧美精品羞羞答答| 99热这里只有精品8| 亚洲一区精品视频在线观看| 在线观看91久久久久久| 水蜜桃一区二区三区| 性欧美精品一区二区三区在线播放| 激情视频网站在线观看| 国产中年熟女高潮大集合| 男人天堂久久久| 日本一区二区综合亚洲| 国产丝袜护土调教在线视频| 色域天天综合网| 一区在线播放| 992tv在线成人免费观看| 99re8这里只有精品| 国产三区在线成人av| 亚洲精品一二区| 亚洲欧美日韩系列| 亚洲精品国产欧美在线观看| 亚洲精品视频在线观看网站| 激情久久久久久| 欧美日韩黄色网| 又黄又爽的视频在线观看| 一级全黄裸体免费视频| 56国语精品自产拍在线观看| 欧美free性69| 国产成人精品网| 国产aⅴ精品一区二区三区色成熟| 亚洲毛片一区二区三区| 麻豆国产精品视频| 国产综合久久久久| 国内毛片毛片毛片毛片| 国产午夜精品理论片a级探花| 天天综合天天添夜夜添狠狠添| 91麻豆蜜桃一区二区三区| 国产精品久久中文| 久久精品精品电影网| 日韩超碰人人爽人人做人人添| 国产综合第一页| 国产91精品久久久久久久| 91av资源在线| 青青青草视频| 秋霞午夜鲁丝一区二区| 国产麻豆日韩| av片哪里在线观看| 无遮挡又爽又刺激的视频| 日韩 欧美一区二区三区| 国产欧美一区二区精品秋霞影院| 香蕉视频免费在线播放| 韩国女同性做爰三级| 日韩免费观看高清| 欧美性猛交xxxx免费看蜜桃| 高清一区二区三区四区| www.久久成人| 亚州av电影免费在线观看| 激情欧美一区二区三区| 91国内在线视频| 国产a级毛片一区| 午夜视频在线瓜伦| 亚洲精品一区二区| 1区2区3区在线| 成年人在线观看视频| 亚洲一级Av无码毛片久久精品| 国产91成人在在线播放| 国产精品美女午夜爽爽| 特黄特色欧美大片| 日韩av免费网站| 在线看片日韩| 日韩av观看网址| 97在线视频免费| 色婷婷在线视频| 日本我和搜子同居的日子高清在线| 欧美成人片在线| 综合久久五月天| 成人另类视频| 亚洲欧洲制服丝袜| 久久久综合网站| 国产精品后入内射日本在线观看| 日韩mv欧美mv国产网站| 欧美日韩综合一区二区三区| 国产精品一区二区在线观看网站| 日本成人网址| 久草中文综合在线| jizzjizz免费大全| canopen超线视频网线的应用| 一区二区三区精品牛牛| 奇米777日韩| 四季av日韩精品一区| a级黄色小视频| 亚洲丝袜精品| 91精品久久久久久久久99蜜臂| 性国产高清在线观看| 亚洲男女一区二区三区| 香蕉视频网站在线播放| 理论片播放午夜国外| 国产精选在线观看91| 奇米影视亚洲狠狠色| 色婷婷国产精品综合在线观看| 久久影视中文字幕| 中文字幕第8页| 久久精品久久久久久| 一区二区三区四区免费| 写真福利理论片在线播放| 亚洲精品国自产拍在线观看| 欧美一级国产精品| 神马午夜dy888| 欧美日韩免费做爰大片| 国产精品一区二区你懂的| 国产一区二区三区香蕉| 欧美大香线蕉线伊人久久| 91久久精品一区二区二区| 精品人妻人人做人人爽夜夜爽| 99精品一区二区| 最近2019中文免费高清视频观看www99| 久久久久久日产精品| 蘑菇福利视频一区播放| 美国毛片一区二区| 日韩精品高清在线观看| 亚洲自拍欧美色图| 91超薄肉色丝袜交足高跟凉鞋| 亚洲成人av在线播放| 91蝌蚪91九色| 亚洲女同在线| 日韩精品一区二区三区免费观影| 9191在线播放| 伊人在线视频观看| 国产成人精品在线视频| 国产www免费观看| 国产精品免费无码| 免播放器亚洲一区| 亚洲一区二区成人| 亚洲视频一区在线观看| 国产麻豆久久| 污的网站在线观看| 91女主播在线观看| 成人不用播放器| 精品视频日韩| 影音先锋国产精品| 亚洲а∨天堂久久精品2021| h七七www色午夜日本| 2022国产麻豆剧果冻传媒剧情| 亚洲尤物在线| 欧美精品v日韩精品v韩国精品v| 国产大片精品免费永久看nba| 亚洲女人****多毛耸耸8| 国产精品美女久久久久久不卡| 亚州欧美日韩中文视频| 91av免费观看91av精品在线| 亚洲东热激情| 91一区在线观看| 精品久久久99| 视频一区二区三区不卡| 国产精品情侣呻吟对白视频| 亚洲夜夜综合| chinese国产精品| 久久99精品这里精品3| 亚洲自拍偷拍福利| 国产精品系列在线| 国产成人av电影在线观看| 迷人的保姆韩国| 香蕉久久国产| 亚洲欧美日韩在线一区| 免费观看在线午夜影视| 久久久成人av毛片免费观看| 天天干在线影院| 污香蕉视频在线观看| 伦伦影院午夜日韩欧美限制| 亚洲欧美中文字幕| 欧美.日韩.国产.一区.二区| 精品国产一区二区亚洲人成毛片| 国产极品久久久久久久久波多结野| 欧美激情视频一区二区三区免费| 久久久久久黄色| 波多野结衣网页| 好看的黄色网址| 人善交vide欧美| 99re热视频精品| 婷婷六月综合亚洲| 激情欧美日韩一区| 97久久人人超碰| 色呦呦一区二区| 日韩精品中午字幕| 亚洲日韩欧美视频一区| av一区观看| 在线观看中文字幕的网站| 国产三区在线视频| av福利网址| 国产在线高潮| 国产欧美一区二区在线| 午夜激情久久| 国产精品一区二区无线| 亚洲精品在线播放视频| 日本韩国一区二区| 国产日韩精品一区二区浪潮av| 国产suv一区二区三区| 亚洲大尺度视频| 欧美在线高清视频| 亚洲精品在线三区| 亚洲伦理精品| 一本大道久久a久久精二百| 综合久久成人| 亚洲色图综合网| 国产精品日本| 一区二区三区在线免费观看| 国产女人18毛片水18精| 精品一区二区三区的国产在线观看| 亚洲综合不卡| av色综合久久天堂av色综合在| a在线视频播放观看免费观看| 日韩精品一卡二卡| 中文字幕免费在线观看视频| 午夜欧美精品| 7799国产精品久久久久99| 在线国产福利网站| 国产精品欧美日韩一区| 一区二区三区区四区播放视频在线观看| 在线不卡一区二区| 日韩一级免费毛片| 日韩三级av高清片| 亚洲免费人成在线视频观看| 国产又粗又猛又爽又黄的视频小说| 日韩一区和二区| 亚洲国产精品成人一区二区| 影音成人av| 操人视频欧美| 国产啪精品视频网站| 欧美日韩有码| 国产精品久久久久久久久久三级| 欧美亚洲成人网| 亚洲永久免费观看| a视频在线观看免费| 香港三级日本三级a视频| 日韩有码一区二区三区| 中文官网资源新版中文第二页在线观看| 中文在线一区| 国产欧美精品一二三| 久久久久久久久久久妇女| 日韩一区二区三区四区五区六区| 亚洲天堂1区| 成人在线免费视频| 欧美激情高清视频| 人妻激情另类乱人伦人妻| 欧美理论影院| 成人av在线资源网| 亚洲人吸女人奶水| 美女精品自拍一二三四| 五月婷婷综合在线观看| 免费在线观看国产黄| 亚洲欧美日韩另类精品一区二区三区| 欧美激情偷拍| 麻豆精品在线视频| 中国色在线日|韩| 欧美激情网址| 成人精品动漫一区二区三区| 97伦理在线四区| 欧美男人操女人视频| 欧美性猛交丰臀xxxxx网站| 免费看日韩av| 国产一区二区免费在线| 国产精品丝袜黑色高跟| 日本孕妇大胆孕交无码| 中文字幕亚洲专区| 啦啦啦在线视频免费观看高清中文| 国产三级三级看三级| 婷婷在线视频| 免费99精品国产自在在线| 欧美一区免费视频| 欧美高清视频www夜色资源网| 欧美黑人国产人伦爽爽爽| 最新国产精品久久精品| 欧美久久综合| 桃乃木香奈和黑人aⅴ在线播放| 日本欧美韩国| 免费精品一区二区三区在线观看| 美女脱光衣服与内衣内裤一区二区三区四区| 亚洲欧美丝袜| 一区二区在线不卡| 中文字幕乱码一区| 91在线观看免费高清完整版在线观看| 亚洲一区在线播放| 91看片在线播放| 日韩精品综合一本久道在线视频| 精品久久久久久久久久| 妞干网在线播放| 欧美日韩中文字幕在线播放| 婷婷在线免费视频| 日操夜操天天操| 亚洲AV无码精品国产| 鲁丝一区鲁丝二区鲁丝三区| 一区二区三区中文在线| 欧美电影免费观看高清完整| 欧美黑人xxxⅹ高潮交| 精品成人久久av| 成人xxxxx色| 天天草夜夜操| 婷婷久久国产对白刺激五月99| 尤物网精品视频| 不卡的日韩av| 米奇精品一区二区三区| 成人在线视频一区二区| 最新国产一区| 天堂一本之道| 亚洲成av人影院| 亚洲日本韩国一区| 亚洲女人****多毛耸耸8| 日韩在线观看视频一区二区| 一级片视频在线观看| 亚洲影院在线观看| 欧美成人一区二区三区高清| 久久久三级国产网站| 欧美一级片免费播放| 久久精品日韩无码| 亚洲午夜精品久久久久久人妖| 中文字幕免费在线| 69久久精品| 国产精品日韩欧美综合| 日本一区二区精品视频| 精品久久久久久久久久久久| 国产精品av网站| 国产精品久久久久av免费| 9l视频自拍蝌蚪9l视频成人| 五月婷婷激情综合| 国产精品178页| 2020国产精品久久精品美国| 黄网站色视频免费观看| 日韩理论在线观看|