天才教育網(wǎng)合作機構 > 培訓機構 >

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

                                                                                        歡迎您!
                                                                                        朋友圈

                                                                                        全國統一學(xué)習專(zhuān)線(xiàn) 9:00-21:00

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

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

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

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

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

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

                                                                                          // 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,".");

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

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

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

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

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

                                                                                        圖1,完全手動(dòng)寫(xiě)出來(lái)的感覺(jué)還是不夠感性……)

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

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

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

                                                                                          TextFormat

                                                                                          TextFormat對象可以直接的形容成為T(mén)extField的CSS,通過(guò)對象的形勢存放文本區所使用的樣式。

                                                                                          我們通過(guò)一個(gè)例子來(lái)說(shuō)明常用的屬性:

                                                                                          tf=new TextFormat();
                                                                                          with (tf) {
                                                                                           align="right" //排列方向;
                                                                                           indent=20 //段縮進(jìn);
                                                                                           italic=bold=1 //斜體加粗;
                                                                                           size=20 //大小;
                                                                                           font="arial" //字體;
                                                                                           leading=2 //行間距;
                                                                                           underline=1 //下線(xiàn);
                                                                                           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í)候我們可能會(huì )使用動(dòng)態(tài)文本,而動(dòng)態(tài)文本經(jīng)常會(huì )有一些html的元素讀入,這時(shí),我們需要使得html屬性不為假,并從htmltext給定內容;在textformat中以上基本都會(huì )經(jīng)常使用,而對于文本區的selectable屬性則是針對防止copy做出的對策之一;過(guò)程和html一樣,當樣式定完后,通過(guò)setNewTextFormat給予/應用extField對象新的樣式。(如圖2)

                                                                                          原文件:

                                                                                          注:

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

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

                                                                                        奇米在线7777在线精品|国产成人精品免费视|精品无码不卡一区二区三区|国内综合精品午夜久久资源|亚洲视频在线观看..