天才教育網(wǎng)合作機構 > 設計軟件培訓機構 > Flash培訓機構 >

東莞設計培訓網(wǎng)

歡迎您!
朋友圈

400-850-8622

全國統(tǒng)一學習專線 9:00-21:00

位置:設計軟件培訓資訊 > Flash培訓資訊 > 體驗Flash MX(6):文本區(qū)的屬性和方法

體驗Flash MX(6):文本區(qū)的屬性和方法

日期:2005-12-24 00:00:00     瀏覽:284    來源:東莞設計培訓網(wǎng)

  我們天的努力現(xiàn)在成了熱身訓練,從今天此時起,我們才真正用到傳說中的FlashMX,而今后的日子里,我想它會越來越精彩。拿到了Flash MX的正式版以后(47377KB),其實最主要的感覺就是Action面板的快捷鍵換掉了,當我習慣性按下F2的時候,結果出現(xiàn)了Output面板,當然我們可以從Window菜單找回Action面板的位置(F9,好像不太方便)。

  關于Flash MX的文本區(qū)的應用昨天我們已經(jīng)開始了*次的親密接觸,今天我們來深入了解一些文本區(qū)的屬性和方法,并通過TextFormat對象來裝修文本的樣式。

  在昨天的大米試驗中,雖然經(jīng)測試還是有一些矛盾存在,不過這個方向是對的,我們繼續(xù)給它添磚加瓦:

  // make box

  Movieclip.prototype.makeBox = function(x, y, l) {
   this.lineto(x, y+l);
   this.lineto(x+l, y+l);
   this.lineto(x+l, y);
   this.lineto(x, y);
  };  // prepare scroll template

  createEmptyMovieClip("scrollUp",2);
  with (scrollUp) {
   lineStyle(1,0x999999,50);
   moveTo(550,200);
   beginFill(0x345678,20);
   makeBox(550,200,30);
   endfill();
  }  // make scroll

  duplicateMovieClip(scrollUp, "scrolldown", 3);
  scrollUp._y-=60;
  // handler method

  scrollUp.onPress=function(){txt.scroll--};
  scrollDown.onPress=function(){txt.scroll++};
  // prepare text

  createTextField("txt",1,300,10,100,200);
  with (txt) {
   type="input";
   textcolor=0x333333;
   variable="tempcache";
   border=wordwrap=1;
   restrict="^demons";
  }  // custom method

  txt.onSetFocus=function(){
   trace("Ready for loading rice");
   txt.text=""
  };
  txt.onkillFocus=function(){
   trace("Gocha...");
   txt.putRice(200,"::::~")
  };

  txt.putRice = function (count,food) {
   if (count) {
    txt.text +=food;
    arguments.callee(--count,food);
   }
   return;
  };  // start

  txt.putRice(200,".");
  txt.putRice(200,".");
  txt.putRice(200,".");

  阿,有沒搞錯?這么長?暈阿。也許有的人會這樣說……但是這確實是不可分解的一個整體,我們只能慢慢坐下來分析,其實我用到的一些部分代碼基本都是這些天我們所接觸的,尤其是MakeBox和我改進后的putRice裝米器(經(jīng)改進現(xiàn)在已經(jīng)可以裝載任何糧食)。

  這個例子直接的說明了很多對象的用法,例如在Flash MX中可以用ActionScript動態(tài)新建的Button對象,是我們給予onPress后的副作用(當移動上去會出現(xiàn)手,既是已經(jīng)變成了Button對象);而其實基本上很多在Flash MX的對象都會有部分或全部MovieClip對象的proto繼承。TextField也是其中之一,如果在TextField不為Input的時候,我們也可以設置_alpha、_rotation等MovieClip屬性,這就很好的沿用了Movieclip的特性。

  對于textField中的restrict和variable屬性,這些其實都不算是新的屬性,在以前的版本,我們都可以通過面板來對他們進行控制,而此次我們只是簡化了對其操作的方法,restrict是十分好用的,其基本功能是限制字符串的輸入,不過也有別的用途,例如我們上面的例子restrict=”^english” 設定了只可以輸入字符,但遇到用戶輸入english其中之一的時候就會把它們大寫,既是uppercase;控制輸入范圍是用“-”連接兩個范圍界限字符,但如果你要輸入^或者這樣的字符的時候,你需要做的只是加入在他們的前面(^ 和\);變量variable則同樣是以前的變量屬性,指定了一個變量和該text內容相關聯(lián)。

  textField的事件主要有4種:onsetfocus/onkillfocus、onchanged、onscroller。前兩種處理焦點的激活和丟失事件,onchanged響應文本內容的變化事件,onscroller則響應滾動條拉動的事件。

  *程序正常運行,當你開始的時候,看到一個倉庫里面有很多米(真的很多,600斤),但卻不知道其數(shù)量多少,你不得不拉動你的滾動閘來看看這個倉庫里面到底有多少米,而米實在是不好區(qū)分數(shù)量了,這時,你一氣之下買掉了所有的大米,換成了平等價值的玉米,這時再次拉動閘門,玉米的排放位置清晰可見。(如圖1)

圖1,完全手動寫出來的感覺還是不夠感性……)

  textField經(jīng)常會和Selection對象連用,經(jīng)常用用到的組合將是這樣:

  onmouseup=function(){trace(Selection.getBeginIndex());trace(Selection.getEndIndex());txt.
replaceSel(" ")}

  getBeginIndex獲取鼠標開始選擇的文本的開始端,getEndIndex則獲取鼠標放開那一剎那的末端,這時,如果用textField的replaceSel修改文本為空,即為刪除文本。

  TextFormat

  TextFormat對象可以直接的形容成為TextField的CSS,通過對象的形勢存放文本區(qū)所使用的樣式。

  我們通過一個例子來說明常用的屬性:

  tf=new TextFormat();
  with (tf) {
   align="right" //排列方向;
   indent=20 //段縮進;
   italic=bold=1 //斜體加粗;
   size=20 //大小;
   font="arial" //字體;
   leading=2 //行間距;
   underline=1 //下線;
   leftmargin=4 //左間距;
   rightmargin=7 //右間距;
   tabstops=10 //table縮進;
  }

  tf.color=0x234567 //顏色;
  txt.html=true;
  txt.htmltext="DnVsystem";
  txt.selectable=0;
  txt.setNewTextFormat(tf);

(圖2)

  通常在使用textformat的時候我們可能會使用動態(tài)文本,而動態(tài)文本經(jīng)常會有一些html的元素讀入,這時,我們需要使得html屬性不為假,并從htmltext給定內容;在textformat中以上基本都會經(jīng)常使用,而對于文本區(qū)的selectable屬性則是針對防止copy做出的對策之一;過程和html一樣,當樣式定完后,通過setNewTextFormat給予/應用extField對象新的樣式。(如圖2)

  原文件:

  注:

  雖然說Flash MX的屬性有很多,甚至讓人眼花繚亂,難以記住的感覺,但是每個屬性都和其英文有直接相關的含義,所以如果看完這些還不明白,你大可翻閱金山詞霸。

如果本頁不是您要找的課程,您也可以百度查找一下: