麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

AS3及Flex的百條常用知識(shí)

2020-07-17 13:13:11
字體:
供稿:網(wǎng)友
【改變輸出swf的尺度,背景顏色或幀頻】在"Navigator"窗框里右鍵你的項(xiàng)目>選中"Properties">選中"ActionScript Compiler">在"Additional compiler arguments"里輸入你所需要的命令如想改變背景顏色,請(qǐng)輸入:
復(fù)制代碼
代碼如下:
-default-background-color 0xffffff
【鼠標(biāo)坐標(biāo)】mouseX mouseY【檢查變量類型并返回布爾值】is【檢查變量類型并返回類型】typeof【檢查對(duì)象類型并返回該對(duì)象】as【是數(shù)字但不是有效數(shù)字問題】
復(fù)制代碼
代碼如下:
var quantity:Number = 15 - "rabbits";trace(typeof quantity); //顯示: "number" , 但它是NaN (not a number)trace(quantity is Number); //truetrace(quantity != NaN); //false//使用isNaN()函數(shù)檢測(cè):isNaN(quantity); //true//檢測(cè)變量是否內(nèi)含有效數(shù)字:!isNaN(quantity); //false
【取消默認(rèn)的嚴(yán)格編譯模式】在"Navigator"窗框里右鍵你的項(xiàng)目>選中"Properties">選中"ActionScript Compiler">取消"Enabel compile-time type checking"選項(xiàng)【基元數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型好比"值類型"和"引用類型"】基元數(shù)據(jù)類型類似按值傳遞:
復(fù)制代碼
代碼如下:
var intOne:int = 1;var intTwo:int = 1;trace(intOne == intTwo); //true
【復(fù)雜數(shù)據(jù)類型類似按引用傳遞】
復(fù)制代碼
代碼如下:
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(||)的小知識(shí)】對(duì)于邏輯And(&&): 除非條件表達(dá)式的前半部分為真,否則,ActionScript不會(huì)再去求算邏輯AND運(yùn)算符的后半部.如果前半部為假,整個(gè)條件表達(dá)式一定為假,所以再去求算后半部就沒效率了.對(duì)于邏輯OR(||): 除非條件表達(dá)式前半部為假,否則,ActionScript不會(huì)再去求算邏輯OR運(yùn)算符的后半部,如果前半部為真,整個(gè)條件表達(dá)式一定為真.總結(jié):使用邏輯AND(&&)時(shí),把結(jié)果最可能為false的表達(dá)式放到前面;使用邏輯OR(||)時(shí),把結(jié)果最可能為true的表達(dá)式放到前面.【Timer類注意事項(xiàng)】不要認(rèn)為Timer可以極其準(zhǔn)確;使用Timer時(shí)間間隔不要低于10毫秒.【private,protected,internal,public訪問權(quán)限】private:只能在類本身內(nèi)部訪問,按慣例,命名私有成員時(shí)以下劃線"_"開頭;protected:可以由類本身或任何子類訪問.但這是以實(shí)例為基礎(chǔ)的.換言之,類實(shí)例可以訪問自己的保護(hù)成員或者父類的保護(hù)成員,但不能訪問相同類的其它實(shí)例的保護(hù)成員,按慣例,命名保護(hù)成員時(shí)以下劃線"_"開頭;internal:可以由類本身或者相同包內(nèi)的任何類訪問;public:可以在類內(nèi)部訪問,也可以由類實(shí)例訪問,或者聲明為static時(shí),可以直接從類訪問.【一個(gè)函數(shù)具有未知個(gè)數(shù)的參數(shù),用arguments對(duì)象或"...(rest)"符號(hào)訪問它的參數(shù)】注意:使用"...(rest)"參數(shù)會(huì)使 arguments 對(duì)象不可用;
復(fù)制代碼
代碼如下:
private funciton average():void{ trace(arguments.length); //輸出參數(shù)的個(gè)數(shù) // arguments的類型是:object,但可以像訪問數(shù)組一樣去訪問它 trace(arguments[1]); //輸出第二個(gè)參數(shù)}private function average(...argu):void{ trace(argu[1]); //輸出第二個(gè)參數(shù),argu參數(shù)名是自定義的.}
【錯(cuò)誤處理try,catch,finally】
復(fù)制代碼
代碼如下:
private function tryError():void{ try { trace("測(cè)試開始-try"); throwError(); }catch(errObject:Error) { trace("錯(cuò)誤信息:" + errObject.message); trace("測(cè)試結(jié)束-catch"); return; }finally{ trace("雖然catch里已經(jīng)有return方法,但位于return方法后面的finally里的代碼依然會(huì)被執(zhí)行.其實(shí)無論return方法是在try里,還是catch里,finally里的代碼始終會(huì)被執(zhí)行"); } trace("前面已經(jīng)有return了,此處是不會(huì)再執(zhí)行的.除非沒有拋出錯(cuò)誤,以使catch里的代碼沒有被執(zhí)行");}private function throwError():void{ throw new Error("拋出錯(cuò)誤");}
【for...in與for each...in的區(qū)別】與for...in循環(huán)不同的是,for each...in循環(huán)中的迭代變量包含屬性所保存的值,而不包含屬性的名稱(或主鍵,索引).【命名包路徑的小技巧】 使用相應(yīng)于擁有者和相關(guān)項(xiàng)目的包名稱會(huì)比較好.按慣例來講,包名稱的開頭應(yīng)該是逆向的網(wǎng)址名稱.例如,如果Example Corp(examplecorp.com)寫了一些ActionScript3.0類,就會(huì)把所有類放在com.examplecorp包內(nèi)(或者 com.examplecorp的子包內(nèi)).如此一來,如果英國有另一家Example Corp(examplecorp.co.uk)也寫了一些ActionScript3.0類,只要使用包uk.co.examplecorp,就可確保唯一性. 當(dāng)類屬于特定應(yīng)用程序的一部分時(shí),就應(yīng)該放在該應(yīng)用程序特定的子包內(nèi).例如,Example Corp可能有個(gè)應(yīng)用程序名叫WidgetStore.如果WidgetStore應(yīng)用程序使用一個(gè)名為ApplicationManager的類,則此類就應(yīng)該放在com.examplecorp.widgetstore包內(nèi),或者位于該包的子包內(nèi). 按慣例來說,包名稱的開頭是小寫字母.【隱式的取出方法(getter)和設(shè)定方法(setter)】
復(fù)制代碼
代碼如下:
public function get count():uint { return _count;}public function set count(value:uint):uint { if(value < 100){ _count = value; }else { throw Error(); }}
【確保類是絕不會(huì)有子類,使用final】final public class Example{}【super關(guān)鍵字的使用】super(); //父類的構(gòu)造函數(shù),只能在類實(shí)例構(gòu)造函數(shù)內(nèi)部使用super.propertyName; //調(diào)用父類的屬性,屬性需要聲明為public或protectedsuper.methodName(); //調(diào)用父類的方法,方法需要聲明為public或protected【建立常數(shù),使用關(guān)鍵字const而不是var】static public const EXAMPLE:String = "example";【檢測(cè)播放器版本】flash.system.Capabilities.version對(duì)于8.5版以前的任何Flash Player版本,這種方法都不適用.【判斷客戶端系統(tǒng)】flash.system.Capabilities.os【檢測(cè)播放器類型】flash.system.Capabilities.playerType可能的值有:"StandAlone",用于獨(dú)立的 Flash Player"External",用于外部的 Flash Player 或處于測(cè)試模式下"PlugIn",用于 Flash Player 瀏覽器插件"ActiveX",用于 Microsoft Internet Explorer 使用的 Flash Player ActiveX 控件【檢測(cè)系統(tǒng)語言】flash.system.Capabilities.language【判斷用戶是否啟用了IME(輸入法編輯器)】flash.system.IME.enabled【檢測(cè)屏幕的分辨率】flash.system.Capabilities.screenResolutionXflash.system.Capabilities.screenResolutionY【把彈出窗口居中的算法】X = (舞臺(tái)寬/2)-(窗口寬/2)Y = (舞臺(tái)高/2)-(窗口高/2)【控制影片配合Player的方式,包括縮放問題】stage.scaleMode可供選擇值:flash.display.StageScaleMode【舞臺(tái)的對(duì)齊方式】stage.align可供選擇值:flash.display.StageAlign【隱藏Flash Player的右鍵菜單】stage.showDefaultContextMenu = false;【檢測(cè)系統(tǒng)是否具有音頻功能】flash.system.Capabilities.hasAudio【檢測(cè)播放器是在具有MP3解碼器的系統(tǒng)上運(yùn)行,還是在沒有MP3解碼器的系統(tǒng)上運(yùn)行】flash.system.Capabilities.hasMP3【檢測(cè)播放器能 (true) 還是不能 (false) 播放流式視頻】flash.system.Capabilities.hasStreamingVideo【檢測(cè)播放器是在支持 (true) 嵌入視頻的系統(tǒng)上運(yùn)行,還是在不支持 (false) 嵌入視頻的系統(tǒng)上運(yùn)行】flash.system.Capabilities.hasEmbeddedVideo【檢測(cè)播放器能 (true) 還是不能 (false) 對(duì)視頻流(如來自 Web 攝像頭的視頻流)進(jìn)行編碼】flash.system.Capabilities.hasVideoEncoder【顯示 Flash Player 中的"安全設(shè)置"面板】flash.system.Security.showSettings();可供選擇項(xiàng):flash.system.SecurityPanel【讓其它域的.swf訪問本域的.swf】在本域的.swf文件里加上:flash.system.Security.allowDomain()或者使用安全策略文件"crossdomain.xml".在Flash 8以前,這個(gè)文件必須放在.swf所在域的根目錄,現(xiàn)在,你可以使用flash.system.Security.loadPolicyFile(),指定安全策略文件所在的位置.拒絕任何域的做法是在標(biāo)簽內(nèi)什么也不填,安全策略文件也支持通用字符 "*":
復(fù)制代碼
代碼如下:
<?xml version="1.0"?><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ù)字的不同進(jìn)制之間的轉(zhuǎn)換】
復(fù)制代碼
代碼如下:
parseInt(str:String, radix:uint = 0):Number 返回十進(jìn)制的數(shù),參數(shù)radix表示要分析的數(shù)字的基數(shù).如果省略radix,就默認(rèn)為10,除非字符串的開頭是"0x","0X"或"0":trace(parseInt("0x12")); //設(shè)定radix為16,輸出:18trace(parseInt("017")); //設(shè)定radix為8,輸出:15
或者使用Number,uint和int對(duì)象的toString(radix)方法.【使用Math.round()對(duì)一個(gè)數(shù)取整,四舍五入】
復(fù)制代碼
代碼如下:
Math.round()trace(Math.round(204.499)); //輸出:204trace(Math.round(401.5)); //輸出:402
【使用Math.floor()對(duì)一個(gè)數(shù)向下取整,就是只要整數(shù)部分而不理會(huì)小數(shù)分】trace(Math.floor(204.99)); //輸出:204【使用Math.ceil()對(duì)一個(gè)數(shù)向上取整,只要小數(shù)部分不為零,整數(shù)部分就加1】trace(Math.ceil(401.01)); //輸出:402【產(chǎn)生一個(gè)隨機(jī)數(shù)】使用Math.random()產(chǎn)生一個(gè)偽隨機(jī)數(shù)n,其中 0 <= n < 1【把數(shù)字取至最近的小數(shù)點(diǎn)位,即指定精確度】1. 決定你要取的數(shù)字的小數(shù)點(diǎn)位數(shù):例如,如果你想把90.337取成90.34,就表示你要取到兩位小數(shù)點(diǎn)位,也就是說你想取至最近的0.01;2. 讓輸入值除以步驟1所選的數(shù)字(此例為0.01);3. 使用Math.round()把步驟2所計(jì)得的值取成最近的整數(shù);4. 把步驟3所得的結(jié)果乘以步驟2用于除法的那個(gè)值.例如,要把90.337取成兩個(gè)小數(shù)點(diǎn)位數(shù),可以使用:trace(Math.round(90.337/0.01)*0.01); //輸出:90.34【把數(shù)字取成一個(gè)整數(shù)的最接近倍數(shù)值】例1,這樣會(huì)把92.5取成5的最近倍數(shù)值:trace(Math.round(92.5/5)*5); //輸出:95例2,這樣會(huì)把92.5取成10的最近倍數(shù)值:trace(Math.round(92.5/10)*10); //輸出:90【在指定數(shù)值范圍內(nèi)獲得隨機(jī)數(shù)】
復(fù)制代碼
代碼如下:
//可取范圍:[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)用例子:模擬投銀幣,即希望得到隨機(jī)布爾值(true 或 false): randRange(0, 1);模擬投骰子,即希望得到隨機(jī)六個(gè)值: randRange(1, 6);為避免被緩存而需要產(chǎn)生一個(gè)獨(dú)一無二的數(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【計(jì)算兩點(diǎn)之間的距離】勾股定理: c2 = a2 + b2假設(shè)有兩個(gè)影片剪輯mc1和mc2,則它們兩點(diǎn)間的距離c為:var c:Number = Math.sqrt(Math.pow(mc1.x - mc2.x, 2) + Math.pow(mc1.y - mc2.y, 2));【模擬圓周運(yùn)動(dòng)】已知圓心o(x0, y0),半徑r和弧度angle,求圓上任意一點(diǎn)P(x, y)的坐標(biāo):
復(fù)制代碼
代碼如下:
x = x0 + (Math.cos(angle) * r);y = y0 + (Math.sin(angle) * r);
注意:舞臺(tái)的x軸正方向水平向右,y軸正方向垂直向下.【模擬橢圓運(yùn)動(dòng)】已知圓心o(x0, y0),長軸a,短軸b以及弧度angle,求圓上任意一點(diǎn)P(x, y)的坐標(biāo):
復(fù)制代碼
代碼如下:
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ù)組尾端添加元素】
復(fù)制代碼
代碼如下:
var array:Array = new Array();array.push("a", "b");//向數(shù)組尾端添加單一元素也可以這樣:array[array.length] = "c";//如果以索引設(shè)定的元素不存在,數(shù)組本身會(huì)自動(dòng)擴(kuò)展以包含足夠的元素?cái)?shù)目.介于中間的元素會(huì)被設(shè)為undefined:array[5] = "e";trace(array[4]); //輸出: undefined
【向數(shù)組開端添加元素】
復(fù)制代碼
代碼如下:
var array:Array = ["a", "b"];array.unshift("c", "d");trace(array); //輸出: c,d,a,b
【刪除數(shù)組中第一個(gè)元素并返回該元素,使用shift()方法】
復(fù)制代碼
代碼如下:
var letters:Array = new Array("a", "b", "c");var firstLetter:String = letters.shift();trace(letters); //輸出: b,ctrace(firstLetter); //輸出: a
【刪除數(shù)組中最后一個(gè)元素并返回該元素的值,使用pop()方法】
復(fù)制代碼
代碼如下:
var letters:Array = new Array("a", "b", "c");trace(letters); //輸出: a,b,cvar letter:String = letters.pop();trace(letters); //輸出: a,btrace(letter); //輸出: c
【刪除數(shù)組中的元素,給數(shù)組添加新元素并返回刪除的元素,使用splice()方法】splice(startIndex:int, deleteCount:uint, ... values):ArraystartIndex: 一個(gè)整數(shù),它指定數(shù)組中開始進(jìn)行插入或刪除的位置處的元素的索引;deleteCount: 一個(gè)整數(shù),它指定要?jiǎng)h除的元素?cái)?shù)量;... values: 用逗號(hào)分隔的一個(gè)或多個(gè)值的可選列表或數(shù)組,此列表或數(shù)組將插入到此數(shù)組中由 startIndex 參數(shù)指定的位置.【查找數(shù)組中第一個(gè)相匹配的元素】
復(fù)制代碼
代碼如下:
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ù)組中最后一個(gè)相匹配的元素】
復(fù)制代碼
代碼如下:
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()方法:
復(fù)制代碼
代碼如下:
var list:String = "I am YoungBoy.";var words:Array = list.split(" "); //以空格作為分隔符將字符串切割trace(words); //輸出: I,am,YoungBoy.
【把數(shù)組轉(zhuǎn)成字符串】使用String.join()方法:
復(fù)制代碼
代碼如下:
var myArr:Array = new Array("one", "two", "three");var myStr:String = myArr.join(" and ");trace(myArr); //輸出: one,two,threetrace(myStr); //輸出: one and two and three
【使用對(duì)象數(shù)組處理相關(guān)數(shù)據(jù)】
復(fù)制代碼
代碼如下:
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ù)組中獲取最小或最大值】
復(fù)制代碼
代碼如下:
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ù)組元素】
復(fù)制代碼
代碼如下:
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)不會(huì)顯示對(duì)象所有的內(nèi)建屬性.例如,循環(huán)會(huì)顯示執(zhí)行期間新增的特殊屬性,但是,不會(huì)列出內(nèi)建對(duì)象的方法,即使都是儲(chǔ)存在對(duì)象屬性內(nèi).【AVM(ActionScript Virtual Machine,虛擬機(jī))和渲染引擎(Rendering Engine)】AVM負(fù)責(zé)執(zhí)行ActionScript程序,而渲染引擎則是把對(duì)象繪制在顯示器上.【指出容器的顯示清單中有多少顯示對(duì)象】每個(gè)容器都有numChildren屬性.【把項(xiàng)目新增至顯示清單】
復(fù)制代碼
代碼如下:
addChild(child:DisplayObject)addChildAt(child:DisplayObject, index:int)
index: 添加該子項(xiàng)的索引位置.如果指定當(dāng)前占用的索引位置,則該位置以及所有更高位置上的子對(duì)象會(huì)在子級(jí)列表中上移一個(gè)位置.【從顯示清單中移除項(xiàng)目】
復(fù)制代碼
代碼如下:
removeChild(child:DisplayObject)removeChildAt(index:int)
index: 要?jiǎng)h除的 DisplayObject 的子索引,該子項(xiàng)之上的任何顯示對(duì)象的索引位置都減去1.如果想移除窗口所有子元件,可以結(jié)合removeChildAt(),numChildren屬性以及for循環(huán).因?yàn)槊看我粋€(gè)子元件被移除時(shí),索引位置都會(huì)變化,所以,有兩種方法可以處理所有子元件的移除:1. 總是移除位置0的子元件;2. 倒過來移除子元件,也就是從尾端開始.【更改現(xiàn)有子項(xiàng)在顯示對(duì)象容器中的位置】setChildIndex(child:DisplayObject, index:int):void可能用到的方法:返回 DisplayObject 的 child 實(shí)例的索引位置: getChildIndex(child:DisplayObject):int返回位于指定索引處的子顯示對(duì)象實(shí)例: getChildAt(index:int):DisplayObject注意: 當(dāng)子元件移到低于它現(xiàn)在所在位置的索引時(shí),那么,從標(biāo)的索引起,直到子元件索引前面的那個(gè)索引的所有子元件都會(huì)令其索引增加1,而該子元件就會(huì)指定至標(biāo)的索引.當(dāng)子元件移到較高索引時(shí),從該子元件索引之上的那個(gè)索引起,直到標(biāo)的索引的所有子元件都會(huì)令其索引往下減1,而該子元件就會(huì)指定至標(biāo)的索引值.【關(guān)于TextField以垂直方式把文字?jǐn)[在按鈕表面中心點(diǎn)的小技巧】
復(fù)制代碼
代碼如下:
textField.y = (_height - textField.textHeight) / 2;textField.y -= 2; //減2個(gè)像素以調(diào)整偏移量
【外部.swf影片載入和互動(dòng)】1. 監(jiān)聽init事件;2. 透過content屬性存取所載入的影片.當(dāng)所載入的影片做好足夠的初始化工作,使其方法和屬性可以接受互動(dòng)時(shí),init事件就會(huì)被發(fā)起.只有在載入器發(fā)起init事件后,才能控制影片.所載入的影片還沒初始化就試著與它互動(dòng),是會(huì)產(chǎn)生執(zhí)行期間錯(cuò)誤的.
復(fù)制代碼
代碼如下:
_loader.contentLoaderInfo.addEventListener(Event.INIT, handleInit); //當(dāng)載入的.swf的屬性和方法可用時(shí)_loader.load(new URLRequest("ExternalMovie.swf"));private function handleInit(event:Event):void { var movie:* = _loader.content; trace(movie.getColor()); movie.setColor(0xFF0000);}
【TextField有兩種類型:動(dòng)態(tài)(dynamic)和輸入(input),默認(rèn)值為動(dòng)態(tài).改變TextField類型方法】
復(fù)制代碼
代碼如下:
field.type = TextFieldType.INPUT; //selectable屬性默認(rèn)值為trueflash.text.TextFieldType.INPUT和flash.text.TextFieldType.DYNAMIC
【過濾文字輸入】
復(fù)制代碼
代碼如下:
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ù)字和破折號(hào)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)輸入時(shí)會(huì)變成小寫對(duì)待形式(a,b和c),反之亦然.restrict屬性只影響用戶可以輸入的內(nèi)容,腳本可將任何文本放入文本字段中.【設(shè)定輸入框的最大長度】TextField.maxChars:int【向TextField追加內(nèi)容】TextField.appendText(text:String):void與通過對(duì) text 屬性使用加法賦值來連接兩個(gè)字符串(例如 field.text += moreText)相比,此方法的效率更高.【顯示HTML格式的文字】
復(fù)制代碼
代碼如下:
TextField.htmlText = "<b>Html text</b>";支持的HTML標(biāo)簽集有: <b>,<i>,<u>,<font>(有face,size以及color屬性),< p>,
,<a>,<li>,<img>以及<textformat>(有 leftmargin,rightmargin,blockindent,indent,leading以及tabstops屬性,相應(yīng)于 TextFormat類的同名屬性)
【縮減空白】TextField.condenseWhite = true;刪除具有HTML文本的文本字段中的額外空白(空格,換行符等),如同多數(shù)HTML瀏覽器所做的那樣.注意: 在設(shè)置 htmlText 屬性之前設(shè)置 condenseWhite 屬性【自動(dòng)大小調(diào)整和對(duì)齊】TextField.autoSize = TextFieldAutoSize.LEFT;可選之值:
復(fù)制代碼
代碼如下:
flash.text.TextFieldAutoSize.CENTERflash.text.TextFieldAutoSize.LEFTflash.text.TextFieldAutoSize.NONEflash.text.TextFieldAutoSize.RIGHT
【指示文本字段是否自動(dòng)換行】TextField.wordWrap = true; //自動(dòng)換行【用程序手段滾動(dòng)文字】水平方向以像素為單位,而垂直方向以行做單位:
復(fù)制代碼
代碼如下:
scrollV: 指出文字框可見區(qū)域的最頂行,可讀寫;bottomScrollV: 指出文字框內(nèi)最底端可見行,只讀;maxScrollV: scrollV的最大值,只讀;numLines: 定義多行文本字段中的文本行數(shù),只讀;TextField.scrollV = field.maxScrollV; //滾動(dòng)到最后一頁
【響應(yīng)滾動(dòng)事件】
復(fù)制代碼
代碼如下:
field.addEventListener(Event.SCROLL, onTextScroll);
【樣式化文字的方法】1. 使用HTML標(biāo)簽進(jìn)行樣式化;2. 使用TextFormat對(duì)象;3. 使用CSS.例如: HTML是用標(biāo)簽,TextFormat對(duì)象是設(shè)定font屬性,而CSS是使用font-family屬性的.受支持的層疊樣式表(CSS)屬性和值,及其相應(yīng)的ActionScript屬性名稱(小括號(hào)內(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實(shí)體: <(小于號(hào): <), >(大于號(hào): >), &(和: &), "(雙引號(hào): "), '(撇號(hào),單引號(hào): ')其中樣式對(duì)象的兩種寫法:寫法一:
復(fù)制代碼
代碼如下:
var sampleStyle:Object = new Object();sampleStyle.color = "#FFFFFF";sampleStyle.textAlign = "center";css.setStyle(".sample", sampleStyle);
寫法二:
復(fù)制代碼
代碼如下:
var sampleStyle:Object = {color: "#FFFFFF", textAlign: "center"};css.setStyle(".sample", sampleStyle);
【對(duì)用戶輸入的文字進(jìn)行樣式化】使用defaultTextFormat屬性,樣式會(huì)施加至用戶鍵入輸入框的文字身上:
復(fù)制代碼
代碼如下:
var formatter:TextFormat = new TextFormat();formatter.color = 0x0000FF; //把文字變成藍(lán)色field.defaultTextFormat = formatter;
【對(duì)現(xiàn)有文字的一部分進(jìn)行樣式化】TextFormat.setTextFormat(format:TextFormat, beginIndex:int = -1, endIndex:int = -1):void【設(shè)定文字框的字體】例子:HTML: field.htmlText = "Formatted text";TextFormat: formatter.font = "Arial";CSS: P{ font-family: Arial; }也可以使用以逗號(hào)隔開的字體清單: 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字體時(shí)的語法:[Embed(source="pathToTtfFile", fontName="FontName", mimeType="application/x-font-truetype")]pathToTtfFile: ttf文件的路徑,TrueType字體的路徑可以是相對(duì)的,也可以是絕對(duì)的;FontName: 字體名稱;內(nèi)嵌系統(tǒng)字體的語法:[Embed(systemFont="Times New Roman", fontName="Times New Roman", mimeType="application/x-font-truetype")]fontName: 以相同名稱作為實(shí)際系統(tǒng)字體名稱.注意: 在使用嵌入字體時(shí),要把TextField的embedFonts屬性設(shè)為true,這樣TextField只能用內(nèi)嵌字體了.如果你試著替 embedFonts設(shè)為true的TextField使用設(shè)備字體,什么都不會(huì)顯示.如果embedFonts設(shè)為true,就無法指定以逗號(hào)相隔的字體清單.【建立可以旋轉(zhuǎn)的文字】使用內(nèi)嵌字體.當(dāng)你旋轉(zhuǎn)文字框時(shí),設(shè)備字體就會(huì)消失.【顯示Unicode文字】1. 從外部來源載入U(xiǎn)nicode文字;2. 假如你的編輯器支持Unicode(如 Flex Builder),則可以直接在ActionScript程序中使用該字符;3. 使用Unicode轉(zhuǎn)義字符,ActionScript里所有Unicode轉(zhuǎn)義字符都以/u開頭,后面再跟四位十六進(jìn)制數(shù)字.注意: 如果你想取得Unicode字符,在Windows下使用: 開始>所有程序>附件>系統(tǒng)工具>字符映射表.【把Flash Player的焦點(diǎn)帶給文字框】stage.focus = field;把焦點(diǎn)移除:stage.focus = null;注意: 當(dāng).swf文件首次載入至網(wǎng)頁瀏覽器時(shí),并沒有焦點(diǎn).因此,以程序的方式把焦點(diǎn)指定給Flash應(yīng)用程序的一個(gè)元素前,必須先把焦點(diǎn)移至Flash Player.【以ActionScript選取文字】使用TextField.setSelection(beginIndex:int, endIndex:int):void為了可以正常選取文字,文字框必須具有焦點(diǎn):
復(fù)制代碼
代碼如下:
stage.focus = field; //把焦點(diǎn)設(shè)給文字框field.text = "This is example text"; //設(shè)定文字field.setSelection(0, 4); //把"This"這個(gè)單詞以高亮顯示
使用只讀的selectionBeginIndex和selectionEndIndex屬性訪問所選取的字符范圍的索引.【在文字內(nèi)設(shè)定安插點(diǎn)(游標(biāo)位置)并訪問游標(biāo)位置的索引值】可以使用TextField.setSelection()把起始和結(jié)尾的索引參數(shù)都設(shè)成相同值,在文字內(nèi)設(shè)定游標(biāo)位置(假設(shè)具有焦點(diǎn)):
復(fù)制代碼
代碼如下:
field.setSelection(0, 0); //在第一個(gè)字符前擺放安插點(diǎn)trace(field.caretIndex); //輸出游標(biāo)位置的索引值
【當(dāng)文本字段受到選取或取消選取時(shí)給予響應(yīng)】獲得焦點(diǎn)時(shí): FocusEvent.FOCUS_IN失去焦點(diǎn)時(shí): FocusEvent.FOCUS_OUT通過鍵盤(Tab鍵)把焦點(diǎn)移除時(shí): FocusEvent.KEY_FOCUS_CHANGE通過鼠標(biāo)把焦點(diǎn)移除時(shí): FocusEvent.MOUSE_FOCUS_CHANGEFocusEvent 類有一個(gè)relatedObject屬性.就FOCUS_IN事件而言,relatedObject屬性是剛才擁有焦點(diǎn)的對(duì)象的引用地址;對(duì)于FOCUS_OUT,KEY_FOCUS_CHANGE以及MOUSE_FOCUS_CHANGE事件,relatedObject屬性是剛接收到焦點(diǎn)的對(duì)象的引用地址.FOCUS_IN和FOCUS_OUT事件都是在焦點(diǎn)改變后發(fā)生的,所以兩者都是不可取消的事件.對(duì)于KEY_FOCUS_CHANGE和MOUSE_FOCUS_CHANGE事件,可以使用FocusEvent.preventDefault()方法取消默認(rèn)行為:
復(fù)制代碼
代碼如下:
field.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, onKeyFocus);private function onKeyFocus(event:FocusEvent):void { if(field.text == "") { event.preventDefault(); //當(dāng)field沒有任何文字前,不允許使用Tab鍵把焦點(diǎn)移除 } //event.relatedObject就是剛才擁有焦點(diǎn)的對(duì)象的引用地址,即下一個(gè)獲得焦點(diǎn)的對(duì)象的引用地址}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 91久久一区| 国产精品美女久久久久久网站 | 久久久成人精品视频 | 91成人免费电影 | 久久久久国产一区二区三区不卡 | 午夜精品福利视频 | 五月天堂av91久久久 | 久久久久久久久久亚洲 | 国产精品久久久久影院老司 | 亚州精品天堂中文字幕 | 国产大片中文字幕在线观看 | 国产成人高潮免费观看精品 | av在线播放免费 | 一级尻逼视频 | 免费视频观看 | 97se亚洲综合在线韩国专区福利 | 国产91精品欧美 | 久久久婷婷一区二区三区不卡 | 精品中文视频 | 日韩欧美中文字幕视频 | 性aaa| 在线观看免费视频麻豆 | 97se亚洲综合在线韩国专区福利 | 99精品视频在线观看免费 | 亚洲一级毛片 | 免费一区二区三区 | 久久毛片免费观看 | 一区小视频| 2021国产精品视频 | 欧产日产国产精品乱噜噜 | 羞羞答答视频 | 美女黄视频在线观看 | 国产高清美女一级毛片久久 | 一区二区久久精品66国产精品 | 久久久在线免费观看 | 久久国产一级 | 欧美人的天堂一区二区三区 | 日韩一级免费毛片 | 羞羞色网站| 久久久久亚洲视频 | 久久福利精品 |