<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-31  評論-257  文章-0  trackbacks-0
          好久沒有寫文章了,一直用“忙”來為自已找籍口,其實是懶,不過這個月發(fā)生了這么大的事情 5.12 讓我們每個人都永記心中,看到中國人的團結(jié),看見解放軍們志愿者們這么努力地為災(zāi)區(qū)奉獻,我也不能再為自已找借口了,雖然我遠在廣東,不能到現(xiàn)場去參與救緩,錢也捐過了,但想想,我還有事情可以做的,就是用我自已的知識,寫點技術(shù)文章,雖則不能直接的幫助到災(zāi)區(qū),但也為國民提高Flex技術(shù)知識出分力,做好本職工作。在這里哆嗦點也得說句:為災(zāi)區(qū)遇難者祈禱,為災(zāi)區(qū)救緩不懈努力的軍民給與崇高的敬意!
    .....................................................(三分鐘后)

          好了,我們轉(zhuǎn)入正題,之前我也寫過Flex的動畫與變換的文章,不知道大家有沒有看過。現(xiàn)在我要寫的就是Flex中的皮膚樣式方面的,我技術(shù)不太好,算是自已學(xué)習(xí)Flex過程中的理解體會吧。
          這里是第一篇,將講述一下Flex中如何應(yīng)用UI的皮膚,其實應(yīng)用UI皮膚不難,你們在使用Flex的過程中是否覺得Flex中自帶的皮膚樣式不太好看?或者是想自已做個比較有特色的?下面就我們來說說皮膚吧,先來個簡單的,你們在做網(wǎng)頁時,做導(dǎo)航按鈕什么的很多人都是用一個圖片來作為一個按鈕吧?之后做幾個不同的顏色,之后就在CSS或者JS里設(shè)置一下當(dāng)鼠標(biāo)Over和Down和Out等等動作時,就切換不同顏色的圖片,這樣實現(xiàn)動態(tài)效果。在Flex里也可以如此簡單的做皮膚。你可以先畫好一個UI的皮膚,之就就將該圖片應(yīng)用到Flex里面。
    先來看看效果:


    之后我們來看看代碼:
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" width="257" height="182" backgroundGradientColors="[#ffffff, #ffffff]">
     3    
     4     <mx:Script>
     5         <![CDATA[
     6            
     7             //Embed標(biāo)簽是用于將一些外部資源加入到Flex中,隨Flex的編譯成SWF文件,
     8             //這里是加入一張PNG圖片,即是做好的Skin圖片
     9             [Embed(source="images/buttonskin.png",
    10                    scaleGridTop="26",
    11                    scaleGridBottom="64",
    12                    scaleGridLeft="30",
    13                    scaleGridRight="106")]
    14             //上面的Embed標(biāo)簽下面要緊跟著這個Class,意思就是將上面的資源加入到Flex
    15             //后變?yōu)檫@個Class的內(nèi)容,即調(diào)用這個Class時,就是調(diào)用那些資源
    16             private var MyBtnSkin:Class;
    17            
    18             //在程序創(chuàng)建完成時會調(diào)用該函數(shù),在函數(shù)里面設(shè)置Button的樣式(Style)
    19             //這里就是設(shè)置按鈕的up,over,down三個鼠標(biāo)狀態(tài)時的皮膚,就是上面加入的圖片資源
    20             private function init():void{
    21                 btn.setStyle("upSkin",MyBtnSkin);
    22                 btn.setStyle("overSkin",MyBtnSkin);
    23                 btn.setStyle("downSkin",MyBtnSkin);
    24             }
    25         ]]>
    26     </mx:Script>
    27     <mx:Button id="btn" label="Hello World" width="190" height="90"/>
    28 </mx:Application>


          怎么樣?很簡單吧?大家需要注意一下的是在Embed標(biāo)簽里,我定義了一些scaleGridTop之類的屬性,這是跟皮膚的縮放有關(guān)的,如果不定義那些屬性的話,那么圖片是多大的,就按多大來進行縮放,當(dāng)你的按鈕很大時,那些皮膚圖片就會被拉大,出現(xiàn)馬賽克與變形等,這都是不好看的。加入了9格縮放模式后,當(dāng)你縮放按鈕時,九個格中的四個角的區(qū)域不會被縮放,保持原樣,中間格會寬高同時縮放,中間上下格會僅是寬度縮放,中間左右格只會高度縮放,這樣,那個皮膚的邊框無論你如何縮放,都是原來的大小比例,而不會將整個圖片一起拉申。
          現(xiàn)在的按鈕太單調(diào)了,只有一個外觀,現(xiàn)在大家可以再加多兩個不同顏色或者其它圖案的圖片作為不同狀態(tài)的皮膚就可以了,比如將overSkin改成紅色邊框的圖片等。

          其實大家有沒有發(fā)現(xiàn),上面代碼的寫法感覺比較麻煩的。我們可以用CSS來實現(xiàn),我們可以直接點,將皮膚直接寫在Button上,如下:
    1 <mx:Button label="Hello World"
    2         upSkin="@Embed('images/buttonskin.png')"
    3         overSkin="@Embed('images/buttonskin.png')"
    4         downSkin="@Embed('images/buttonskin.png')"
    5     />

    這樣也是同樣的效果。省事好多了吧。或者我們用CSS來寫:
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="257" height="182" backgroundGradientColors="[#ffffff, #ffffff]">
     3     <mx:Style>
     4         Button{
     5             up-skin:Embed(source="images/buttonskin.png",
     6                           scaleGridTop="26",
     7                           scaleGridBottom="64",
     8                           scaleGridLeft="30",
     9                           scaleGridRight="106");
    10             over-skin:Embed(source="images/buttonskin.png",
    11                           scaleGridTop="26",
    12                           scaleGridBottom="64",
    13                           scaleGridLeft="30",
    14                           scaleGridRight="106");
    15         }
    16     </mx:Style>
    17     <mx:Button id="btn" label="Hello World" width="190" height="90"/>
    18 </mx:Application>

    如果覺得加上CSS代碼會令程序代碼混亂的話,就將CSS代碼寫在CSS文件里去,在程序里導(dǎo)入CSS文件就可以了。(至于CSS的用法,我就不說了,反正Flex里的CSS方式與Html里的用法用樣。只是要注意一下CSS里面設(shè)置的屬性的名字就可以了)

    <mx:Style source="styles/styles.css" />

          但有人可能會問,這樣做的話,如果一個程序有很多不同的UI,并有不同的皮膚,那不就是要生成很多的圖片?這個問得好,確實,如果以這種方式的話,就像一個網(wǎng)站里的images文件夾一樣,有很多的小圖片,這樣太麻煩了,而且也不好維護。既然有這樣的問題,我們就將皮膚干脆做成在一個文件里面算了,方便快捷,維護又方便,而這個文件,就是SWF文件。我們?nèi)绻蠪lash基礎(chǔ)的話,基本對MC都不會陌生,對,這次我們的主角就是SWF里面的MC,我們可以將一個皮膚做成一個MC,在Flash里將所有用到的皮膚都做在一個SWF里,一個圖片就像是一個MC,之后發(fā)布該SWF文件,在Flex里加載這個SWF文件,再在需要的皮膚里調(diào)用SWF里面相應(yīng)皮膚的MC的名字就可以了。如下:
    這個是在Flash里做好的皮膚SWF文件,里面有三個不同顏色的皮膚模式
    [swf]attachments/month_0805/p2008518233635.swf[/swf]
    這里要注意一下,在Flash里做這些皮膚時,要將MC加上鏈接,鏈接的名稱,就是你在Flex里調(diào)用該皮膚的名稱,圖片如下:




    在做好皮膚的SWF后,讓我們回到Flex 里面,在Flex里寫如下代碼:
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="257" height="182" backgroundGradientColors="[#ffffff, #ffffff]">
     3     <mx:Style>
     4         Button{
     5             up-skin:Embed(source="images/btnSkin.swf",symbol="btnUP");
     6             over-skin:Embed(source="images/btnSkin.swf",symbol="btnOVER");
     7             down-skin:Embed(source="images/btnSkin.swf",symbol="btnDOWN");
     8         }
     9     </mx:Style>
    10     <mx:Button id="btn" label="Hello World" width="100" height="60"/>
    11 </mx:Application>


    注意一下的就是,在Embed標(biāo)簽里,要導(dǎo)入的資源文件不是PNG了,而是一個SWF,就是我們剛才在Flash里做好的皮膚文件,注意看,后面還跟著一個symbol屬性,該屬性就是指明你要調(diào)用哪一個MC,就是SWF里面的MC,記得,都要為每個MC做鏈接,并鏈接名字要與symbol里的名字致。至此,我們的皮膚就完成了。一個SWF文件就搞掂。這里是最終效果:


    好了,這篇教程就到些結(jié)束,上面介紹的都是Skin的比較簡單快捷的用法,不過靈活性就不是很大,但也是皮膚技術(shù)的最基礎(chǔ)的,大家也可以再擴展一下其它用法等等的,在下篇文章,也就是Flex皮膚系列文章的(二)中,我會介紹一下用程序代碼來編寫皮膚,這就是不依賴于外部的資源文件,直接用AS3代碼用Graphics來自已畫皮膚。下篇將會用到AS3的Draw API方面的知識,請大家做好準(zhǔn)備。

    在此再次向我們的災(zāi)區(qū)戰(zhàn)士們給與崇高的敬意!
    posted on 2008-07-29 14:37 姜大叔 閱讀(7274) 評論(5)  編輯  收藏 所屬分類: Flash/Flex

    評論:
    # re: Flex中的皮膚(一) 2008-12-03 17:28 | hcj_xhu
    受益匪淺  回復(fù)  更多評論
      
    # re: Flex中的皮膚(一) 2009-03-27 14:48 | feichang
    學(xué)到很多  回復(fù)  更多評論
      
    # re: Flex中的皮膚(一) 2009-08-09 11:31 | chy
    支持多點這樣的文章!  回復(fù)  更多評論
      
    # re: Flex中的皮膚(一) 2011-06-14 14:52 | Jack Yang
    請問不通過其他工具直接用AS來實現(xiàn)怎么做。  回復(fù)  更多評論
      
    # re: Flex中的皮膚(一)[未登錄] 2013-05-30 15:29 | kenny
    那就用graphics來畫好了……@Jack Yang  回復(fù)  更多評論
      
    主站蜘蛛池模板: 国产免费av片在线无码免费看| av免费不卡国产观看| 成人永久免费福利视频网站| 亚洲国产精品综合久久20| 一个人在线观看视频免费| 国产亚洲sss在线播放| 24小时免费直播在线观看| 亚洲一区精彩视频| 永久黄网站色视频免费直播 | 永久免费视频网站在线观看| 亚洲视频.com| 一二三四免费观看在线视频中文版| 亚洲成av人片不卡无码| 免费激情视频网站| 日日狠狠久久偷偷色综合免费 | 在线播放国产不卡免费视频| 亚洲精品视频在线看| a级毛片免费高清毛片视频| 亚洲av丰满熟妇在线播放| 亚洲免费观看网站| 亚洲爆乳少妇无码激情| 国产亚洲情侣一区二区无| 久久免费观看国产精品| ASS亚洲熟妇毛茸茸PICS| 免费jlzzjlzz在线播放视频| 国产无遮挡无码视频免费软件| 亚洲天堂电影在线观看| 日本大片在线看黄a∨免费| 中文字幕免费在线看线人动作大片| 久久99亚洲网美利坚合众国| 国产精品二区三区免费播放心| 国产免费福利体检区久久| 亚洲精品在线电影| 国产免费变态视频网址网站| a在线视频免费观看| 国产精品亚洲自在线播放页码| 四虎影在线永久免费观看| 特级无码毛片免费视频尤物| 亚洲色丰满少妇高潮18p| 亚洲成AV人片在线观看无| 成人毛片18女人毛片免费|