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