天才教育網(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

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

位置:設(shè)計(jì)軟件培訓(xùn)資訊 > Flash培訓(xùn)資訊 > 體驗(yàn)Flash MX(5):網(wǎng)絡(luò)數(shù)據(jù)和文本相關(guān)操作

體驗(yàn)Flash MX(5):網(wǎng)絡(luò)數(shù)據(jù)和文本相關(guān)操作

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

  首先,對(duì)時(shí)刻在我身邊的網(wǎng)絡(luò)朋友們和經(jīng)常來(lái)信鼓勵(lì)我的網(wǎng)友們表示感謝。我會(huì)堅(jiān)持下去,并寫出尊重Flash MX的名字的系列文章。

  Flash MX在Macromedia的MX戰(zhàn)略方向的重視使得其開(kāi)放式的結(jié)構(gòu)可以應(yīng)用于更多的網(wǎng)絡(luò)內(nèi)容和開(kāi)發(fā)應(yīng)用,今天,我們針對(duì)新提升的網(wǎng)絡(luò)數(shù)據(jù)和文本相關(guān)操作進(jìn)行解析。

  TextField對(duì)象

  新的TextField對(duì)象是從Object對(duì)象繼承而來(lái),使得在Flash中動(dòng)態(tài)建立文本的童話變成現(xiàn)實(shí),而這一些你只要從MovieClip.createTextField開(kāi)始(這條語(yǔ)句想必使用頻率非常的高,所以我把格式寫出來(lái)): MovieClip.createTextField(Instance名稱,深度,初始x軸位置,初始y軸位置,初始寬度,初始高度);

  通過(guò)MovieClip的createTextField方法,你將可以動(dòng)態(tài)的在程序運(yùn)行期間建立文本區(qū)并可設(shè)置其屬性和方法:

  createTextField("txt",++dpt,80,100,100,200);
  txt.wordwrap=true;
  var i=30;
  while (i--) txt.text+="rice...";

  通過(guò)這行代碼,我們?cè)诔绦蜻\(yùn)行期動(dòng)態(tài)建立一個(gè)Instance名稱為txt的文本區(qū)并置于第1層深度,規(guī)定其初始位置在(80,100),高200寬100;這個(gè)“筐”做好以后,我們可以往里面放東西,但是我們?cè)诜胖?,我們需要?guī)定它的另一個(gè)屬性wordwrap,這個(gè)屬性的作用相當(dāng)于規(guī)定了你的筐有沒(méi)有封邊,如果初始值為false,那么這個(gè)“筐”是失敗的,只可以當(dāng)作“席子”;隨意我們規(guī)定了這個(gè)“筐”封邊,并塞入30“斤”大米。試運(yùn)行下結(jié)果。(如圖1,阿,看起來(lái)到真像大米筐……)

(圖1)

  成功的*步邁開(kāi)了之后,讓我們對(duì)上面丑陋的大米筐裝修一下。

  createEmptyMovieClip("mc",++dpt);
  with (mc) {
   createTextField("txt",++dpt,80,100,100,100);
   txt.putRice=function(rice){
    if(rice){
     txt.text+=".";
     arguments.callee(--rice)}return;
    };
   txt.border=1;
   txt.multiline=1;
   txt.background=1;
   txt.wordWrap=1;
   txt.putRice(254);
   txt.putRice(36);
  }

  由于TextField是MovieClip的方法,所以我們出于學(xué)習(xí)而產(chǎn)生一個(gè)空的MovieClip來(lái)裝這個(gè)文本區(qū);程序運(yùn)行后動(dòng)態(tài)產(chǎn)生一個(gè)文本區(qū),并有一個(gè)邊框和白色的背景,*用自定義方法putRice裝載“大米”,由于Flash MX的遞歸調(diào)用最多只可以支持256層(0-255),所以我們還不能一下子裝載300斤,只能分兩次裝(254+36),*形成的結(jié)果如下:(圖2)

(圖2,看起來(lái)好整齊的大米,其實(shí)多余的部分已經(jīng)漏到地低下去了……)

  嗯……這就結(jié)束了?我這個(gè)人Bad Mind,總想搞搞惡作劇,我讓我做的textField米筐進(jìn)行物理性破壞測(cè)試,讓其高度(或?qū)挘┬∮谧煮w的最小高度后……發(fā)現(xiàn)Bug一個(gè),textField失去了原有的位置和高、寬屬性被擠到了屏幕的邊緣,最搞笑的就是這個(gè)測(cè)試結(jié)果……讓我們加入如下代碼并觀察(圖3)

  createTextField("txt",++dpt,80,100,100,3);
  trace(txt._x);
  trace(txt._y);
  trace(txt._width);
  trace(txt._height);
  trace(txt.textwidth);
  trace(txt.textheight);
  txt.wordwrap=1;
  var i=30;
  while (i--) txt.text+="rice...";

(圖3,倒……y可是100耶,寬也是100耶,沒(méi)辦法,把我的筐撐壞了……米撒了一地)

  TextFiled的簡(jiǎn)單應(yīng)用

  剛做了個(gè)米筐例子,看起來(lái)文本區(qū)操作還有些用途,可是僅僅這樣可不夠……Flash MX中新的文本區(qū)還是有很大的用途的。

  例如我們做一個(gè)在線用戶輸入姓名和密碼的簡(jiǎn)單應(yīng)用,輸入如下代碼:

  createTextField("txtUser",++dpt,80,100,100,20);
  createTextField("txtPass",++dpt,80,150,100,20);
  txtUser.type=txtPass.type="input";
  txtUser.border=txtUser.background=1;
  txtUser.bordercolor=txtPass.bordercolor=0x776655;
  txtPass.border=txtPass.background=1;
  txtUser.autosize=txtPass.autosize="center";
  txtUser.text=txtPass.text+=" ";
  txtPass.password = 1;
  txtUser.tabIndex=1;
  txtPass.tabIndex=2;
  txtUser.tabEnabled=txtPass.tabEnabled=1;
  txtUser.tabChildren=txtPass;

  啊……看起來(lái)亂七八糟,但是卻十分好理解,F(xiàn)lash MX中允許用戶自定義TextField的很多屬性,而對(duì)其操作更是考慮周到;我們首先定義兩個(gè)類型為輸入文本的TextField txtUser和txtPass,定了一基本的背景邊框等樣式屬性后,我們用autosize屬性讓文本自動(dòng)縮放,這樣在用戶輸入的的時(shí)候十分的動(dòng)感的,而第2個(gè)文本txtPass需要用戶的內(nèi)容為隱藏,所以把它的password屬性設(shè)為true;接著給這兩個(gè)文本初始化字符,讓他們看起來(lái)不那么狹窄;*用用到的是tabIndex,它是一個(gè)存儲(chǔ)當(dāng)前需要table鍵換焦點(diǎn)文本的數(shù)組,通過(guò)正整數(shù)來(lái)區(qū)分每個(gè)要切換的文本,而你如果你要是用到這個(gè)功能,文本區(qū)的tabEnabled必須是true,否則無(wú)效,而tabChildren屬性是新加入的屬性,我們可以設(shè)置/獲取其內(nèi)部的子文本對(duì)象。測(cè)試,你可以看到一個(gè)用戶輸入界面,這一切的制作過(guò)程是不需要你動(dòng)任何鼠標(biāo)操作的。(如圖4)

(圖4,哈……我的密碼長(zhǎng)度恐怖吧)

  但是,這個(gè)tabIndex和selection有直接的沖突。當(dāng)你設(shè)置了tabEnabled和tabIndex后,如果要使用selection.setFocus(txtUser);這樣的看上去什么錯(cuò)誤都沒(méi)有的代碼,將會(huì)產(chǎn)生一個(gè)內(nèi)部?jī)?yōu)先級(jí)錯(cuò)誤,將無(wú)法有效使用tab鍵來(lái)切換文本。

  寫到這里,通過(guò)很多例子我們?cè)俅巫C明了在Flash MX中可以完全脫離鼠標(biāo)并能完成很多同樣甚至更酷的效果,而此時(shí),F(xiàn)lash MX的陽(yáng)光射線才不過(guò)是上午10點(diǎn)半,更多的功能還等待我們?nèi)ヌ剿鳌?/P>

  源文件:

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