天才教育網(wǎng)合作機(jī)構(gòu) > 設(shè)計(jì)軟件培訓(xùn)機(jī)構(gòu) > Flash培訓(xùn)機(jī)構(gòu) >

東莞設(shè)計(jì)培訓(xùn)網(wǎng)

歡迎您!
朋友圈

400-850-8622

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

位置:設(shè)計(jì)軟件培訓(xùn)資訊 > Flash培訓(xùn)資訊 > 體驗(yàn)Flash MX(6):文本區(qū)的屬性和方法

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

日期:2005-12-24 00:00:00     瀏覽:282    來源:東莞設(shè)計(jì)培訓(xùn)網(wǎng)

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

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

  在昨天的大米試驗(yàn)中,雖然經(jīng)測試還是有一些矛盾存在,不過這個(gè)方向是對的,我們繼續(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,".");

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

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

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

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

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

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

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

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

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

  TextFormat

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

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

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

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

(圖2)

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

  原文件:

  注:

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

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