Flash as入門:文本與字符串_Flash教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:Flash教程:用AS3代碼制作躲避碰撞的盒子
      簡介:本例介紹運(yùn)用Flash的AS3代碼制作躲避碰撞的盒子效果,譯者詳細(xì)解釋了代碼的運(yùn)用,喜歡本效果的朋友可以到論壇提交作業(yè)~~ 效果演示:(請用鼠標(biāo)點(diǎn)擊小球觀看效果) 在這個(gè)Actions

      本例繼續(xù)講解AS的基礎(chǔ)知識(shí),今天講解的是AS入門第六課文本與字符。

      文本與字符串

      在制作flash動(dòng)畫時(shí),常常會(huì)用到文本和字符串,首先來看看文本.

      一 創(chuàng)建文本框

      在創(chuàng)作環(huán)境中創(chuàng)建文本框

      在創(chuàng)作環(huán)境中創(chuàng)建文本框很簡單,新建一flash文件,用文本工具在舞臺(tái)上畫一個(gè)文本框,這樣文本框就建好了.文本框建好后,需要進(jìn)行設(shè)置.現(xiàn)在打開屬性面板.首先要確定文本框的類型,點(diǎn)開類型下拉列表可以看到共有三種文本框類型可供選擇:靜態(tài)文本、動(dòng)態(tài)文本、輸入文本.靜態(tài)文本相當(dāng)于標(biāo)簽,在AS中不能進(jìn)行操作,本課程不介紹.以下文本框均是指動(dòng)態(tài)文本和輸入文本.動(dòng)態(tài)文本和輸入文本可在運(yùn)行時(shí)進(jìn)行操作.動(dòng)態(tài)文本是運(yùn)行時(shí)動(dòng)態(tài)改變文本問容;輸入文本是在運(yùn)行時(shí)可由用戶輸入文本內(nèi)容.為了在AS中對其進(jìn)行操作應(yīng)在屬性面板中為其命名.有兩種方法可以讀取和設(shè)置文本框的內(nèi)容,一種方法是設(shè)置或讀取文本框的text屬性.text屬性代表文本框的內(nèi)容.

      例:在舞臺(tái)上畫一文本框,設(shè)置其類型為動(dòng)態(tài)文本,為其取名為mytext1_txt.然后在幀動(dòng)作面板中輸入:

      mytext1_txt.text="動(dòng)態(tài)文本框"
      測試影片,文本框中將顯示"動(dòng)態(tài)文本框".
      在屬性面板中,還可以設(shè)置大小、位置、字體、字體大小、顏色、邊框等屬性.
      設(shè)置和讀取文本內(nèi)容的另一個(gè)方法是給文本框設(shè)置變量.這種方法現(xiàn)在不推薦使用,而主張使用text屬性.在屬性面板的右下部有一"變量"文本框,在這里可以為文本框設(shè)一變量,那么這一變量就代表文本框的內(nèi)容.例我們在這里輸入a,然后將幀動(dòng)作中的代碼改為:

      a="動(dòng)態(tài)文本框"
      測試影片,文本框中同樣顯示"動(dòng)態(tài)文本框".
      運(yùn)行時(shí)創(chuàng)建文本框

      運(yùn)用TextField類的createTextField()方法可以在運(yùn)行時(shí)創(chuàng)建文本框.格式為:
      createTextField(名稱,深度,x坐標(biāo),y坐標(biāo),寬度,高度)
      深度:相當(dāng)于層的概念,深度數(shù)字越大就越在上面.同一深度只能包含一個(gè)對象,如果在同一深度添加新的對象,那么新的對象會(huì)覆蓋同一深度上原來的對象.關(guān)于深度的詳細(xì)內(nèi)容將在影片剪輯課程中介紹.
      x、y:創(chuàng)建的文本框的注冊點(diǎn),注冊點(diǎn)位于文本框的左上角.
      例:新建一flash文件,打開幀動(dòng)作面板,輸入:

      This.createTextField("my_txt",1,100,100,200,50);
      my_txt.border=true;
      my_txt.text="動(dòng)態(tài)創(chuàng)建的文本框";
      測試影片,將看到一個(gè)文本框,文本內(nèi)容是:"動(dòng)態(tài)創(chuàng)建的文本框".
      本例動(dòng)態(tài)創(chuàng)建了一個(gè)文本框,然后設(shè)置了文本框的兩個(gè)屬性:
      border:設(shè)置文本框是否有邊框
      text:設(shè)置文本框的內(nèi)容.
      文本框還有很多屬性,將在后續(xù)章節(jié)介紹.
      刪除文本框:
      對于用createTextField()創(chuàng)建的文本框可以用removeTextField()方法來刪除.

      例:在舞臺(tái)上放一按鈕,并為其命名為:del_btn.
      然后在幀動(dòng)作面板中輸入:
      This.createTextField("my_txt",1,100,100,200,50);
      my_txt.border=true;
      my_txt.text="動(dòng)態(tài)創(chuàng)建的文本框";
      del_btn.onRelease=function(){

      my_txt.removeTextField();

      }
      測試影片,將看到一個(gè)文本框,文本內(nèi)容是:"動(dòng)態(tài)創(chuàng)建的文本框".點(diǎn)擊按鈕時(shí),文本框被刪除

       

      練習(xí):算術(shù)練習(xí)器

      本練習(xí)由程序出100以內(nèi)的加減乘除題,由用戶計(jì)算,再由程序判定計(jì)算是否正確.通過本練習(xí)可以實(shí)踐各種文本框的應(yīng)用,同時(shí)也可對前面各課介紹的基礎(chǔ)知識(shí)進(jìn)行綜合應(yīng)用,如函數(shù),條件語句,數(shù)組,運(yùn)算符等.下面來制作這個(gè)練習(xí)器:

      新建一flash文檔:

      1.用文本工具在舞臺(tái)上方居中畫一文本框,打開屬性面板,選擇靜態(tài)文本,設(shè)置好字體、大小、顏色等屬性.在文本框中輸入:"算術(shù)練習(xí)器".
      2.在稍下面一點(diǎn)再畫一個(gè)文本框,類型為動(dòng)態(tài)文本,設(shè)置其它屬性.不要邊框.該文本框用于顯示算術(shù)題目,文字較多,且要顯示兩行,所以請選擇"多行".將該文本框命名為:tm_txt.
      3.在下面再畫一文本框,類型為輸入文本.命名為da_txt.該文本用于用戶輸入答案.設(shè)置其它屬性.點(diǎn)下邊框按鈕.需要注意的是,在屬性面板右下角,有一"自動(dòng)調(diào)整字距"選項(xiàng)框,切莫打鉤.因?yàn)樵撐谋究蛑休斎氲膬?nèi)容為數(shù)字,此項(xiàng)打鉤后文本內(nèi)容將變?yōu)樽址?那么將會(huì)導(dǎo)至后續(xù)程序失敗.所以請記住凡是需要參加計(jì)算的數(shù)字文本不能選擇此項(xiàng).
      4.新建兩個(gè)按鈕元件,標(biāo)簽分別為:"確定"、"下一題",將兩個(gè)按鈕放到舞臺(tái)下方,注意應(yīng)與第三個(gè)文本框之間間隔一定距離,因?yàn)槲覀冞要在運(yùn)行時(shí)創(chuàng)建一個(gè)文本框用于顯示答題的結(jié)果.打開屬性面板,將兩個(gè)按鈕分別命名為:qd_btn、xyt_btn.
      5.好了現(xiàn)在開始寫代碼:新建一層,命名為:action,打開幀動(dòng)作面板

       

      首先聲明三個(gè)變量用來存放兩個(gè)參與計(jì)算的數(shù)字及答案.

      var a:Number;

      var b:Number;

      var jg:Number;

      下面開始出題,程序剛打開時(shí)首先應(yīng)出好題目,做完一道題點(diǎn)擊下一題時(shí)又要出一次題目,這就是說出題的代碼將重復(fù)使用,請養(yǎng)成良好的習(xí)慣,將要重復(fù)使用的代碼做成函數(shù),以免重復(fù)輸代碼.我們也借此練習(xí)一下函數(shù)的聲明及調(diào)用.接著寫代碼:

      function ct(){ //聲明了一個(gè)叫ct的函數(shù)

      a=random(99) 1;//加1就避免了算數(shù)出現(xiàn)0的情況.

      b=random(99) 1;

      var ysfz:Array=new Array(" ","-","*","/");//聲明了一個(gè)數(shù)組用于存放運(yùn)算符.

      var ysfs =random(4);//產(chǎn)生一個(gè)0一3的隨機(jī)數(shù)用于提取數(shù)組ysfz中的運(yùn)算符.

      var ysf=ysfz[ysfs];//提取了運(yùn)算符.

      tm_txt.text="請計(jì)算:" a ysf b newline "除法請去掉余數(shù)";//通過動(dòng)態(tài)文本框?qū)㈩}目顯示出來

      switch(ysfs){ //用一個(gè)條件語句計(jì)算結(jié)果

      case 0:

      jg=a b;

      break;

      case 1:

      jg=a-b;

      break;

      case 2:

      jg=a*b;

      break;

      case 3:

      jg=int(a/b);


      break;

      }

      }

      ct();//調(diào)用ct()函數(shù),題就出好了.
      接下來是點(diǎn)擊”確定”按鈕時(shí),判斷用戶是否回答正確,并給出結(jié)論:
      qd_btn.onRelease = function(){
      createTextField("jg_txt",0,170,250,200,50);//在運(yùn)行時(shí)創(chuàng)建了一個(gè)文本框,這里文本框的坐標(biāo)就根據(jù)實(shí)際位置確定.

      if(da_txt.text ==jg){ //如果用戶在輸入文本中輸入的數(shù)字等于題的結(jié)果

      jg_txt.text = "回答正確";//創(chuàng)建的文本框顯示”回答正確”

      } else { //否則


      jg_txt.text = "回答不正確";//創(chuàng)建的文本框顯示”回答不正確”

      }

      }

      最后是點(diǎn)擊”下一題”按鈕時(shí),重新出題,輸入文本框清空,刪除運(yùn)行時(shí)創(chuàng)建的文本:
      xyt_btn.onRelease=function(){

      da_txt.text="";//清空輸入文本

      jg_txt.removeTextField();//刪除運(yùn)行時(shí)創(chuàng)建的文本

      ct();//調(diào)用ct()函數(shù)重新出題.
      }

      作業(yè):制作算術(shù)練習(xí)器

       

      文本框與字符

      二. 文本框的屬性

      上一節(jié)我們介紹了創(chuàng)建文本框,文本框創(chuàng)建后我們通過其屬性和方法可以對文本框進(jìn)行操作,本節(jié)將介紹文本框的屬性設(shè)置

      屬性:

      antiAliasType:用于此 TextField

      實(shí)例的消除鋸齒類型。它有兩個(gè)值:

      "normal":應(yīng)用常規(guī)文本消除鋸齒。

      "advanced":應(yīng)用高級(jí)消除鋸齒將增加文本的可讀性。(此功能從 Flash Player 8 起可用)。高級(jí)消除鋸齒可以高品質(zhì)地呈現(xiàn)小尺寸的字體。它最適合具有大量小字號(hào)文本的應(yīng)用程序。建議不要對大于 48 磅的字體使用高級(jí)消除鋸齒。
      設(shè)置本屬將使用消除鋸齒的文本,它將使文本字段有更好的更清晰的顯示效果,但所產(chǎn)生的swf文件較大。使用設(shè)備字體是指使用用戶計(jì)算機(jī)上已安裝的字體,它產(chǎn)生的swf文件最小,而將此屬性設(shè)為:"advanced"時(shí),產(chǎn)生的swf文件最大。如果制作有大量文本字的swf文件時(shí),要控制文件的大小,請考量此項(xiàng)如何設(shè)置更好。

      例:this. createTextField("mytext_txt",1,100,100,200,50);
      mytext_txt.text = "這是消除鋸齒的文本";
      mytext_txt.antiAliasType = "advanced"
      this. createTextField("mytext1_txt",2,100,200,200,50);
      mytext1_txt.text = "這是沒有消除鋸齒的文本";

      測試影片,兩個(gè)文本效果差不多哈

       

      autoSize:文本的自動(dòng)大小縮放和對齊方式,可設(shè)為以下幾個(gè)值:

      "none"或false:不自動(dòng)縮放.

      "left"
      或 true,左邊固定向右邊縮放.

      "right",右邊固定向左邊縮放.

      "center",中間固定向兩邊縮放

      Background:
      指定文本字段是否具有背景填充。如果為 true,則文本字段具有背景填充。如果為 false,則文本字段沒有背景填充。

      backgroundColor:
      文本字段背景的顏色。默認(rèn)值是 0xFFFFFF(白色)。只有當(dāng)文本字段有邊框時(shí),背景顏色才可見。

      border:
      指定文本字段是否具有邊框。如果為 true,則文本字段具有邊框。如果為 false,則文本字段沒有邊框。

      borderColor:
      文本字段邊框的顏色。默認(rèn)值是 0x000000(黑色)。

      例:
      this. createTextField("mytext_txt",1,100,100,200,50);
      mytext_txt.text = "本例創(chuàng)建了一個(gè)文本框:" "\r" "運(yùn)用上面?zhèn)紹的屬性,對文本框外觀進(jìn)行設(shè)置";
      mytext_txt.autoSize = "center" //文本框中間固定,向兩邊縮放.
      mytext_txt.background = true;//文本框有背景
      mytext_txt.backgroundColor=0xff0000;//文本框背景為紅色
      mytext_txt.border = true;//文本框有邊框
      mytext_txt.borderColor=0x1111d5;//文本框邊框?yàn)樗{(lán)色

      測試影片,結(jié)果為:


      注:文本中”\r”為換行的意思

       

      embedFonts:
      指定是否使用嵌入字體輪廓進(jìn)行呈現(xiàn)。一個(gè)布爾值,當(dāng)它為 true
      時(shí),使用嵌入字體輪廓呈現(xiàn)文本字段。如果為 false,則使用設(shè)備字體呈現(xiàn)文本字段。
      如果將文本字段的 embedFonts
      設(shè)置為 true,則必須通過應(yīng)用于該文本字段的 TextFormat
      對象的 font
      屬性,指定該文本的字體。如果庫中不存在指定的字體(具有對應(yīng)的鏈接實(shí)例名稱),則將不顯示文本。

      注:TextFormat對象將在后面介紹

      _height:文本框的高度

      _width:文本框的寬度

      multiline:
      表示文本字段是否為多行文本字段。如果值為 true,則文本字段為多行文本字段;如果值為 false,則文本字段為單行文本字段。

      _name:文本字段的實(shí)例名稱。

      length:表示文本字段中的字符數(shù)

      password:
      指定文本字段是否是密碼文本字段。如果 password 的值為 true,則文本字段為密碼文本字段,并使用星號(hào)替代實(shí)際字符來隱藏輸入的字符。如果為 false,則文本字段不是密碼文本字段。啟用密碼模式時(shí),剪切和復(fù)制命令及其相應(yīng)的鍵盤快捷方式不起作用。此安全機(jī)制可防止不良用戶使用快捷鍵在無人看管的計(jì)算機(jī)上破譯密碼。

      例:
      this. createTextField("mytext_txt",1,100,100,200,50);
      mytext_txt.text = "12345";
      mytext_txt.border = true;
      mytext_txt.password = true;
      測試影片,結(jié)果為:


      文本框中只有星號(hào),無法看到文本內(nèi)容

       

      _rotation:
      文本字段距其原始方向的旋轉(zhuǎn)程度. 使用設(shè)備字體的文本字段不支持旋轉(zhuǎn)值。您必須使用嵌入字體才能對文本字段使用 _rotation

      selectable:
      一個(gè)布爾值,表示文本字段是否可選。值 true
      表示文本可選。selectable
      屬性控制文本字段是否可選,而不控制文本字段是否可編輯。動(dòng)態(tài)文本字段即使不可編輯,它也可能是可選的。如果動(dòng)態(tài)文本字段是不可選的,則您不能選擇其中的文本。
      如果 selectable 設(shè)置為 false,則文本字段中的文本不響應(yīng)來自鼠標(biāo)或鍵盤的"選擇"命令,并且不能使用"復(fù)制"命令復(fù)制文本。如果 selectable 設(shè)置為 true,則可以使用鼠標(biāo)或鍵盤選擇該文本字段中的文本。即使文本字段是動(dòng)態(tài)文本字段而不是輸入文本字段,您也可以用這種方式選擇文本?梢允褂"復(fù)制"命令復(fù)制文本。

      例:
      this.createTextField("mytext_txt",1,100,100,200,50);
      this.createTextField("mytext1_txt",2,100,200,200,50);
      mytext_txt.border = true;
      mytext1_txt.border = true;
      mytext1_txt.selectable=false;
      mytext_txt.text="這個(gè)文本內(nèi)容可選";
      mytext1_txt.text = "這個(gè)文本內(nèi)容不可選"
      測試影片,出現(xiàn)兩個(gè)文本框,一個(gè)文本框的內(nèi)容可以拉黑(可選),點(diǎn)右鍵有復(fù)制菜單項(xiàng).而另一個(gè)則不能被拉黑,沒有右鍵菜單項(xiàng)

      text:
      表示文本字段中的當(dāng)前文本。行用回車符("\r",即 ASCII 13)分隔。

      textColor:
      表示文本字段中文本的顏色。

      例:
      this.createTextField("mytext_txt",1,100,100,200,50);
      mytext_txt.border = true;
      mytext_txt.textColor=0xff0000;
      mytext_txt.text="這個(gè)文本是紅色的";

      textHeight:
      指示文本的高度,以像素為單位

      textWidth:
      指示文本的寬度,以像素為單位

      type:
      指定文本字段的類型。共有兩個(gè)值:"dynamic"(指定用戶無法編輯的動(dòng)態(tài)文本字段)和 "input"(指定輸入文本字段)。

      _visible:
      一個(gè)布爾值,表示文本字段是否可見。禁用不可見的文本字段(_visible 屬性設(shè)置為 false)。

      wordWrap:
      一個(gè)布爾值,表示文本字段是否自動(dòng)換行。如果 wordWrap 的值為 true,則該文本字段自動(dòng)換行;如果值為 false,則該文本字段不自動(dòng)換行

      _x:
      一個(gè)整數(shù),用來設(shè)置文本字段相對于父級(jí)影片剪輯的本地坐標(biāo)的 x 坐標(biāo).注冊點(diǎn)在左上角

      _y:
      文本字段相對于父級(jí)影片剪輯的本地坐標(biāo)的 y 坐標(biāo)。注冊點(diǎn)在左上角

      _xscale:
      確定從文本字段注冊點(diǎn)開始應(yīng)用的文本字段的水平縮放比例,以百分比表示

      _yscale:
      從文本字段的注冊點(diǎn)開始應(yīng)用的文本字段的垂直縮放比例,以百分比表示

       

      關(guān)于文本滾動(dòng)的屬性設(shè)置:

      hscroll:表示當(dāng)前水平滾動(dòng)位置。如果 hscroll

      屬性為 0,則不能水平滾動(dòng)文本

      水平滾動(dòng)的單位是像素,而垂直滾動(dòng)的單位是行。水平滾動(dòng)以像素計(jì)量是因?yàn)槟ǔJ褂玫亩鄶?shù)字體都是按比例隔開的;這意味著字符可以有不同的寬度。Flash 按行執(zhí)行垂直滾動(dòng)是因?yàn)橛脩敉ǔOM吹揭徽形谋荆皇且恍械木植。即使一行上有多種字體,行的高度也會(huì)調(diào)整到與使用的最大字體相適合。

      maxhscroll:表示 TextField.hscroll 的最大值

      例:
      this.createTextField("mytext_txt",1,100,100,100,20);
      mytext_txt.autoSize=false;
      mytext_txt.text="這是一個(gè)滾動(dòng)文本的效果,我們可以看到文本在滾動(dòng).";
      onEnterFrame = function() {

      if(mytext_txt.hscroll < mytext_txt.maxhscroll){

      mytext_txt.hscroll ;

      }else {

      mytext_txt.hscroll =1;

      }
      }
      測試影片,你將看到一個(gè)滾動(dòng)文本。代碼中用了一個(gè)onEnterFrame事件,這是每運(yùn)行一幀就執(zhí)行一次,這樣就形成了一個(gè)無限的循環(huán)。

      scroll:
      文本在文本字段中的垂直位置。scroll 屬性可用于將用戶定向到長篇文章的特定段落,還可用于創(chuàng)建滾動(dòng)文本字段。可以檢索和修改此屬性。水平滾動(dòng)的單位是像素,而垂直滾動(dòng)的單位是行。

      maxscroll:
      表示 TextField.scroll 的最大值。
      參考上例可以做出垂直方向滾動(dòng)的文本。但卻不能用onEnterFrame事件,為什么呢?因?yàn)閟croll屬性是以行為單位,如果每幀跳一行的話,那就太快了。你可以放一個(gè)按鈕,讓每點(diǎn)一次按鈕,文本向上滾動(dòng)行。這個(gè)留給大家自已練習(xí)吧?梢詫(shí)現(xiàn)自動(dòng)滾動(dòng)嗎?當(dāng)然可以,留到本節(jié)課后練習(xí)來說。

      TextFormat類:
      上面主要介紹了文本框的的一些屬性,而文本內(nèi)容的屬性比如字體,顏色,對齊方式等就要借助TextFormat類來實(shí)現(xiàn)。使用 TextFormat 類可以為文本字段創(chuàng)建特定的文本格式。您可以將文本格式應(yīng)用于靜態(tài)文本字段和動(dòng)態(tài)文本字段。必須使用構(gòu)造函數(shù) new TextFormat()

      創(chuàng)建 TextFormat 對象,然后設(shè)置其屬性,再用文本框的setTextFormat()方法來使用這些屬性。

      1.創(chuàng)建TextFormat對象:
      var myformat:TextFormat = new TextFormat();這就創(chuàng)建了一個(gè)叫myformat的TextFormat對象。

      2.設(shè)置TextFormat對象的屬性:
      myformat.bold = true;設(shè)置了myformat的bold(粗體字)屬性.

      3.文本框調(diào)用setTextFormat()方法:
      mytext_txt. setTextFormat(myformat);這樣文本框就調(diào)用了myformat中的屬性設(shè)置,即文本框的內(nèi)容將以粗體字顯示。

      例:
      var myformat:TextFormat = new TextFormat();
      myyformat.bold=true;this.createTextField"mytext_txt",1,100,100,100,20);
      mytext_txt.autoSize=true;mytext_txt.text="設(shè)置了粗體";
      mytext_txt.setTextFormat(myformat);
      測試影片,可以看到文本框中的文字是粗體的。

       

      TextFormat對象的屬性:

      align:指示段落的對齊方式的字符串。您可以將此屬性應(yīng)用于靜態(tài)文本和動(dòng)態(tài)文本。下面的列表顯示此屬性的可能值:

      * "left" -- 段落為左對齊。
      * "center" -- 段落居中。
      * "right" -- 段落為右對齊。
      * "justify" -- 段落為兩端對齊。(Flash Player 8 中添加了此值。)

      默認(rèn)值是 null,它指示該屬性未定義。

      blockIndent:
      以磅為單位指示塊縮進(jìn)的數(shù)字。塊縮進(jìn)應(yīng)用于整個(gè)文本塊,即文本的所有行。而普通縮進(jìn) (TextFormat.indent) 只影響各段的第一行。如果此屬性為 null,則 TextFormat 對象不指定塊縮進(jìn)。

      bold:
      一個(gè)布爾值,指示文本是否為粗體字。默認(rèn)值是 null,它指示該屬性未定義。如果值為 true,則文本為粗體字。

      color:指示文本的顏色。

      font:
      使用此文本格式的文本的字體名稱,以字符串形式表示。

      indent:
      指示從左邊距到段落中第一個(gè)字符的縮進(jìn)的整數(shù)。正值指示普通縮進(jìn)。您可以使用負(fù)值,但只可在左邊距大于 0 時(shí)進(jìn)行負(fù)縮進(jìn)。若要將邊距設(shè)置為大于 0,請使用 indent 屬性或 TextFormat 對象的 blockIndent 屬性。默認(rèn)值是 null,它指示該屬性未定義。

      italic一個(gè)布爾值,指示使用此文本格式的文本是否為斜體

      leading:一個(gè)整數(shù),表示以像素為單位的行間垂直距離(稱為"行距")。

      leftMargin:段落的左邊距,以磅為單位

      letterSpacing:字間距

      rightMargin:段落的右邊距,以磅為單位。

      size:文字的大小

      underline:一個(gè)布爾值,指示使用此文本格式的文本有下劃線 (true) 還是沒有下劃線 (false)

      下面我們來做個(gè)練習(xí):滾動(dòng)文本的制作

       

      新建一flash文檔,導(dǎo)入一圖片,用為背影,居中放好

      新插入一層,命名為action.開始寫代碼:

      1、橫向滾動(dòng):
      首先創(chuàng)建一個(gè)TextFormat對象,然后設(shè)置文本框要用到的屬性.

      創(chuàng)建文本框,并設(shè)置其autoSize屬性為false,不讓其縮放大小.設(shè)置文本框的text屬性,前后輸入一定數(shù)量空格,以避免滾動(dòng)時(shí)出現(xiàn)不連慣.
      用onEnterFrame事件實(shí)現(xiàn)滾動(dòng),方法參見上面例句

      2、縱向滾動(dòng):
      首先創(chuàng)建一個(gè)TextFormat對象,然后設(shè)置文本框要用到的屬性.

      創(chuàng)建文本框,并設(shè)置其autoSize屬性為false,不讓其縮放大小.設(shè)置文本框的text屬性,第一行前和最后一行后,插入一定數(shù)量”\r”,以避免滾動(dòng)時(shí)出現(xiàn)不連慣.

      創(chuàng)建一函數(shù),使文本滾動(dòng),方法參考橫向滾動(dòng)

      用:
      var 隨便取個(gè)變量名 = setInterval(剛建的函數(shù)名,1000);
      實(shí)現(xiàn)滾動(dòng).這一句的意思是每隔1000毫秒調(diào)用一次函數(shù),后面課程將詳細(xì)介紹

      3、3D字效果
      原理是創(chuàng)建兩個(gè)文本框,內(nèi)容相同,字的顏色不同,文本框的位置略微錯(cuò)開2個(gè)象素左右.

      作業(yè):制作滾動(dòng)文本

      附完整代碼:

      建議大家自已完成本練習(xí),不要看這個(gè)代碼,實(shí)在有困難時(shí),只可參考這個(gè)代碼.堅(jiān)決反對直接復(fù)制本代碼,那樣就沒意思了,對你學(xué)習(xí)AS一點(diǎn)好處都沒有.
      var myformat:TextFormat = new TextFormat();
      myformat.bold = true;
      myformat.size = 30;
      myformat.color = 0xff0000;
      this.createTextField("mytext_txt",1,200,50,200,50);
      mytext_txt.autoSize=false;
      mytext_txt.text="
      在花好月圓之夜,祝各位壇友中秋快樂!
      ";
      mytext_txt.setTextFormat(myformat);
      onEnterFrame = function(){
      if(mytext_txt.hscroll<mytext_txt.maxhscroll){

      mytext_txt.hscroll ;
      } else {

      mytext_txt.hscroll =1;
      }
      }
      var myformat1:TextFormat = new TextFormat();
      myformat1.size = 18;
      myformat1.color = 0xf4f44f;
      this.createTextField("mytext1_txt",2,100,150,150,150);
      mytext1_txt.autoSize=false;
      mytext1_txt.text="\r" "\r" "\r" "\r" "\r" "\r" "明月幾時(shí)有?" "\r" "把酒問青天" "\r" "不知天上宮闕," "\r" "今昔是何年";
      mytext1_txt.text ="\r" "我欲乘風(fēng)歸去," "\r" "又恐瓊樓玉宇," "\r" "高處不勝寒。" "\r" "起舞弄清影," "\r" "何似在人間.";
      mytext1_txt.text ="\r" "\r" "轉(zhuǎn)諸閣," "\r" "低倚戶," "\r" "照無眠." "\r" "不應(yīng)有恨," "\r" "何事長向別時(shí)圓.";
      mytext1_txt.text ="\r" "人生悲歡離合," "\r" "月有陰晴圓缺," "\r" "此事古難全." "\r" "但愿人長久," "\r" "千里共嬋娟."
      mytext1_txt.text ="\r" "\r" "\r" "\r" "\r" "\r" "\r" "\r"
      mytext1_txt.setTextFormat(myformat1);
      function gd(){

      if(mytext1_txt.scroll<mytext1_txt.maxscroll){

      mytext1_txt.scroll ;
      } else {

      mytext1_txt.scroll =1;
      }
      }
      var ksgd = setInterval(gd,1000);
      var myformat2:TextFormat = new TextFormat();
      myformat2.bold = true;
      myformat2.size = 30;
      myformat2.color = 0x988E81;
      this.createTextField("mytext2_txt",3,200,300,200,50);
      mytext2_txt.autoSize="center";
      mytext2_txt.text="花好月圓賀中秋";
      mytext2_txt.setTextFormat(myformat2);
      var myformat3:TextFormat = new TextFormat();
      myformat3.bold = true;
      myformat3.size = 30;
      myformat3.color = 0x430FBD;
      this.createTextField("mytext3_txt",4,202,300,200,50);
      mytext3_txt.autoSize="center";
      mytext3_txt.text="花好月圓賀中秋";
      mytext3_txt.setTextFormat(myformat3);

       

      文本框的事件

      onChanged事件:在文本字段的內(nèi)容發(fā)生更改時(shí)調(diào)用。在文本框中的內(nèi)容發(fā)生改變時(shí)就會(huì)觸發(fā)。比如在輸入文本中輸入或刪除一個(gè)字符時(shí)都會(huì)觸發(fā)這個(gè)事件。

      例:this.createTextField("mytext_txt",1,50,20,400,200);
      this.createTextField("myinputtext_txt",2,100,300,100,20);
      myinputtext_txt.autoSize = false;
      myinputtext_txt.border = true;
      myinputtext_txt.type = "input";
      var myformat:TextFormat = new TextFormat();
      myformat.bold=true;
      myformat.color=0xff0000;
      myformat.size=26;
      mytext_txt.autoSize=true;
      mytext_txt.wordWrap=true;
      myinputtext_txt.onChanged = function(){

      mytext_txt.text = myinputtext_txt.text;

      mytext_txt.setTextFormat(myformat);
      }
      這個(gè)例子,創(chuàng)建了兩個(gè)文本框,其中一個(gè)是輸入文本。分別設(shè)置了屬性。然后用onChanged事件,在輸入框中輸入文本的同時(shí),文本顯示在別一文本框中。每輸入一個(gè)字,輸入文本內(nèi)容就發(fā)生了改變,從而觸發(fā)了onChanged事件,而執(zhí)行將文本顯示在另一文本框中的任務(wù)。

      onKillFocus 事件:在文本字段失去鍵盤焦點(diǎn)時(shí)調(diào)用。文本框的焦點(diǎn),就是說光標(biāo)。當(dāng)文本框失去光標(biāo)時(shí),就會(huì)觸發(fā)onKillFocus事件。

      例:this.createTextField("mytext_txt",1,50,20,400,200);
      this.createTextField("myinputtext_txt",2,100,300,100,20);
      myinputtext_txt.autoSize = false;
      myinputtext_txt.border = true;
      myinputtext_txt.type = "input";
      var myformat:TextFormat = new TextFormat();
      myformat.bold=true;
      myformat.color=0xff0000;
      myformat.size=26;
      mytext_txt.autoSize=true;
      mytext_txt.wordWrap=true;
      myinputtext_txt.onChanged = function(){

      mytext_txt.text = myinputtext_txt.text;

      mytext_txt.setTextFormat(myformat);
      }
      myinputtext_txt.onKillFocus = function(){

      trace("輸入框已失去光標(biāo),無法繼續(xù)輸入.");
      }
      本例還是上例的代碼只是在后加了一個(gè)onKillFocus事件函數(shù)。運(yùn)行時(shí)在輸入框中輸幾個(gè)字后,點(diǎn)擊顯示文本的的文本框,這時(shí)輸入文本將失去焦點(diǎn),從而解發(fā)onKillFocus事件。出現(xiàn)失去光標(biāo)的提示。

      onScroller 事件:在某一個(gè)文本字段的 scroll 屬性發(fā)生更改時(shí)調(diào)用。TextField.onScroller事件處理函數(shù)通常用于實(shí)現(xiàn)滾動(dòng)條。滾動(dòng)條通常有一個(gè)縮略圖或其它指示器,顯示文本字段中的當(dāng)前水平或垂直滾動(dòng)位置。使用鼠標(biāo)和鍵盤可以瀏覽文本字段,這會(huì)導(dǎo)致滾動(dòng)位置發(fā)生更改。如果由于用戶交互而導(dǎo)致滾動(dòng)條位置發(fā)生更改,滾動(dòng)條代碼需要獲得通知,這就是使用 TextField.onScroller的目的。

      onSetFocus 事件:在文本字段接收鍵盤焦點(diǎn)時(shí)調(diào)用。

       

      文本框的方法

      getFontList() 方法:以數(shù)組的形式返回播放器的主機(jī)系統(tǒng)上的字體名稱。(此方法不返回當(dāng)前加載的 SWF 文件中所有字體的名稱。)這些名稱的類型為 String。此方法是全局 TextField 類的靜態(tài)方法。在調(diào)用此方法時(shí),不能指定文本字段實(shí)例。

      var font:Array = new Array();
      font = TextField.getFontList();
      trace(font);

      測試影片,你將看到,你的windows目錄下fonts文件夾中的文件名稱給列出來了。

      getDepth() 方法:返回文本字段的深度。

      getNewTextFormat()方法:返回一個(gè) TextFormat 對象,該對象包含文本字段的文本格式對象的一個(gè)副本。

      getTextFormat()方法:返回一個(gè)字符、一段字符或整個(gè) TextField 對象的 TextFormat 對象。

      用法:my_textField.getTextFormat():返回一個(gè) TextFormat 對象,該對象包含文本字段中所有文本的格式設(shè)置信息。

      my_textField.getTextFormat(開始處):返回一個(gè) TextFormat 對象,該對象包含 開始處到結(jié)束時(shí)文本字段的文本格式的一個(gè)副本。

      my_textField.getTextFormat(開始處,結(jié)束處):返回一個(gè)TextFormat對象,該對象包含從 開始處 到 結(jié)束處 范圍內(nèi)文本的格式設(shè)置信息。

      removeTextField()方法:刪除文本字段。只能對使用createTextField() 創(chuàng)建的文本字段執(zhí)行此操作。

      replaceSel()方法:使用新的字符替換當(dāng)前所選內(nèi)容。使用當(dāng)前默認(rèn)字符格式和默認(rèn)段落格式,在當(dāng)前所選內(nèi)容的所在位置插入文本。

      用法:my_textField.replaceSel(新字符);

      可以使用 replaceSel()
      方法插入和刪除文本,而不破壞其余文本的字符和段落格式。
      必須使用 Selection.setFocus()
      將焦點(diǎn)放置在字段上才能發(fā)布此命令。

      replaceText()方法:在指定的文本字段中,用新字符替換由 開始處 和 結(jié)束處 參數(shù)所指定的一段字符。

      用法:my_textField.replaceSel(開始處,結(jié)束處,新字符);

      setTextFormat()方法:將 textFormat 參數(shù)指定的文本格式應(yīng)用于文本字段中的某些文本或全部文本。textFormat
      必須是一個(gè)指定需要的文本格式更改的 TextFormat 對象

      用法:setTextFormat(開始處,結(jié)束處,textFormat對象);如果沒有開始處和結(jié)束處,格式將運(yùn)用于整個(gè)文本

      分享:Flash AS教程:用動(dòng)態(tài)遮罩實(shí)現(xiàn)液化效果
      簡介:本例介紹運(yùn)用Flash AS的動(dòng)態(tài)遮罩來實(shí)現(xiàn)液化效果,教程詳細(xì)講解了AS代碼的運(yùn)用,并給出了詳細(xì)的代碼解釋,希望能給朋友們帶來幫助~~本文由中國教程網(wǎng) sanbos 原創(chuàng),轉(zhuǎn)載請保留此信息!

      來源:中國教程網(wǎng)//所屬分類:Flash教程/更新時(shí)間:2009-03-13
      相關(guān)Flash教程