自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

學(xué)習(xí)筆記 在Flex內(nèi)應(yīng)用CSS樣式

開(kāi)發(fā) 后端
在Flex內(nèi)應(yīng)用CSS樣式的概念你是否了解,這里和大家分享一下,在選擇用Flex實(shí)現(xiàn)CSS的方法必須基于環(huán)境和條件。在考慮設(shè)計(jì)實(shí)現(xiàn)的可用選項(xiàng)時(shí),最好是從較高的層次審視應(yīng)用程序。

本文和大家重點(diǎn)討論一下在Flex內(nèi)應(yīng)用CSS樣式,選擇用Flex實(shí)現(xiàn)CSS的方法必須基于環(huán)境和條件。如下的這些方法是用Flex實(shí)現(xiàn)CSS樣式時(shí)最為常用的。

在Flex內(nèi)應(yīng)用CSS樣式

選擇用Flex實(shí)現(xiàn)CSS的方法必須基于環(huán)境和條件。在考慮設(shè)計(jì)實(shí)現(xiàn)的可用選項(xiàng)時(shí),最好是從較高的層次審視應(yīng)用程序。如下的這些方法是用Flex實(shí)現(xiàn)CSS時(shí)最為常用的。

設(shè)置一個(gè)實(shí)例(內(nèi)聯(lián))上的樣式

擴(kuò)展了FlexUIComponent基類(lèi)的Flex組件允許作為內(nèi)聯(lián)屬性設(shè)置常見(jiàn)樣式—換言之,即在MXML組件聲明標(biāo)簽內(nèi)(參見(jiàn)清單1)。一個(gè)顯示對(duì)象的布局屬性通常對(duì)該對(duì)象惟一,所以常常能夠看到某個(gè)組件被顯式地設(shè)置了如下這些屬性之一:x、y、height、width、top、right、left、bottom、horizontalCenter、verticalCenter、horizontalAlign和verticalAlign。

清單1.用MXML作為某個(gè)組件實(shí)例的屬性設(shè)置樣式    
 

  1. <mx:Buttonidmx:Buttonid="volumeIcon"cornerRadius="0"alpha="0.9" 
  2.  verticalCenter="0"enabled="true"toolTip="VolumeControl" 
  3.  click="toggleVolumeControl();"/> 

清單1展示了設(shè)置樣式屬性的一個(gè)函數(shù)示例,這些屬性對(duì)id值為volumeIcon的Button組件的這個(gè)特定實(shí)例是惟一的。由于我知道它是惟一一個(gè)需要這些特定樣式值的按鈕,因此我已經(jīng)顯式地設(shè)置了此特定按鈕的cornerRadius、alpha和verticalCenter。

設(shè)置MXML組件標(biāo)簽上的樣式屬性的一條經(jīng)驗(yàn)是,只有在知道所設(shè)置的樣式值特定于該組件的情況下才以這種方式設(shè)置此屬性。比方說(shuō),您的應(yīng)用程序要求一個(gè)容器能夠垂直堆疊顯示對(duì)象而不在其間留空隙。同時(shí),您知道應(yīng)用程序內(nèi)的其他VBox容器則確實(shí)需要顯示對(duì)象之間有空隙。在這種情況下,您應(yīng)該在VBox組件的該實(shí)例上顯式地設(shè)置verticalGap屬性,如清單2所示。

清單2.在VBox容器組件的這個(gè)實(shí)例上verticalGap被顯式地設(shè)為0    
 

  1. <mx:VBoxidmx:VBoxid="myVBox"verticalGap="0"  
  2.  x="15"y="15"width="100%"height="100%"> 
  3.     
  4. (...)  
  5.     
  6. </mx:VBox> 

 在MXML內(nèi)嵌入CSS樣式

該方法所涉及到的是用<mx:Style/>標(biāo)簽將樣式或資源直接嵌入到一個(gè)MXML文件內(nèi)。出于實(shí)用的目的,現(xiàn)在需要在其中直接將樣式信息嵌入到MXML文件的實(shí)例很少。最重要的是要認(rèn)識(shí)到如果應(yīng)用程序包含很多被嵌入的CSS,那么隨著應(yīng)用程序的增長(zhǎng),設(shè)計(jì)將越來(lái)越難以維護(hù)。認(rèn)識(shí)到這一點(diǎn),在使用這種方法時(shí),要十分慎重,只有在需要的時(shí)候才使用它。清單3提供了嵌入樣式聲明的一個(gè)例子,該聲明應(yīng)該保留在一個(gè)外部CSS文件內(nèi)以便獲得更好的代碼可維護(hù)性。

清單3.將樣式直接嵌入到MXML應(yīng)用程序文件內(nèi)    
 

  1. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  2. <mx:WindowedApplication 
  3.  xmlns:mx="http://www.adobe.com/2006/mxml" 
  4.  layout="absolute" 
  5.  showFlexChrome="false" 
  6.  borderStyle="none" 
  7.  keyUp="{this.onKeyStrokeEvent(event);}"> 
  8.    
  9.    
  10.  <mx:Style> 
  11.   .bGroup{  
  12.    borderSides:"left,bottom,right";  
  13.    borderStyle:"solid";  
  14.    borderColor:#6d6f71;  
  15.    borderLeftThickness:3;  
  16.    borderRightThickness:3;  
  17.    borderBottomThickness:1;  
  18.    dividerColor:#6d6f71;  
  19.    dividerThickness:3;  
  20.   }  
  21.  </mx:Style> 
  22.    
  23.  <mx:Script> 
  24.   <![CDATA[  
  25.      
  26.    (...)  

 不過(guò),這并不是說(shuō)它將永遠(yuǎn)不會(huì)發(fā)生。清單4就是我基于FlexAplicationControlBar而為我的應(yīng)用程序所構(gòu)建的一個(gè)向下擴(kuò)展(scaled-down)的組件。在所提供的設(shè)計(jì)內(nèi),控制欄內(nèi)的每個(gè)按鈕實(shí)際上都是一個(gè)簡(jiǎn)單的文本單詞,看上去更像是一個(gè)鏈接,而非按鈕。此外,所有這些單詞鏈接之間都有一個(gè)小的bullet分隔符。由于我已經(jīng)有了整個(gè)應(yīng)用程序的設(shè)計(jì),因此我知道這種bullet分隔符是應(yīng)用程序主控制欄所特有的,在任何其他地方都不會(huì)出現(xiàn)。最為重要的是,由于bullet在同一個(gè)組件內(nèi)出現(xiàn)若干次,因此非常有必要將此圖像作為其自己的私有類(lèi)嵌入到這個(gè)MXML文件內(nèi),以便我能從放置在這些鏈接之間的每個(gè)圖像控件中綁定它。否則,結(jié)果很有可能是正在創(chuàng)建的同一個(gè)圖像卻具有多個(gè)實(shí)例,這是對(duì)系統(tǒng)資源的一種浪費(fèi)。

清單4.直接嵌入一個(gè)圖像    
 

  1. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  2. <mx:ApplicationControlBarxmlns:mxmx:ApplicationControlBarxmlns:mx="http://www.adobe.com/  
  3. 2006/mxml"> 
  4.  
  5. <mx:Script> 
  6. <![CDATA[  
  7.    
  8. [Embed(source="assets/bullet_black.png")]  
  9. [Bindable]  
  10. privatevarbullet:Class;  
  11.  
  12. ]]> 
  13. </mx:Script> 
  14.  
  15.  <mx:HBoxxmx:HBoxx="10"y="10"id="hbox"horizontalGap="10"  
  16. width="350"> 
  17.   <mx:LinkButtonlabelmx:LinkButtonlabel="Help"styleName="appBarButton"/> 
  18.   <mx:Imagesourcemx:Imagesource="{bullet}"/> 
  19.   <mx:LinkButtonlabelmx:LinkButtonlabel="About"styleName="appBarButton"/> 
  20.   <mx:Imagesourcemx:Imagesource="{bullet}"/> 
  21.   <mx:LinkButtonlabelmx:LinkButtonlabel="Minimize"styleName="appBarButton"/> 
  22.   <mx:Imagesourcemx:Imagesource="{bullet}"/> 
  23.   <mx:LinkButtonlabelmx:LinkButtonlabel="Quit"styleName="appBarButton"/> 
  24.  </mx:HBox> 
  25. </mx:ApplicationControlBar> 
  26.  

 外部CSS樣式表

一個(gè)Flex或AIR應(yīng)用程序在其源代碼目錄的根部具有一個(gè)MXML文件,應(yīng)用程序可以基于Application類(lèi)(Flex)或WindowedApplication類(lèi)(AIR)。這個(gè)文件就是默認(rèn)的MXML應(yīng)用程序文件,開(kāi)始于<mx:Application/>或<mx:WindowedApplication/>。應(yīng)用程序的樣式表源代碼應(yīng)該立即出現(xiàn)在應(yīng)用程序基類(lèi)聲明之后(參見(jiàn)清單5)。

清單5.在除主應(yīng)用程序MXML文件之外的任何文件內(nèi)聲明樣式表都會(huì)導(dǎo)致錯(cuò)誤    
 

  1. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  2. <mx:WindowedApplication 
  3.  xmlns:mx="http://www.adobe.com/2006/mxml" 
  4.  layout="absolute" 
  5.  showFlexChrome="false" 
  6.  dropShadowEnabled="false" 
  7.  borderStyle="none" 
  8.  applicationComplete="{this.appInit(event);}" 
  9.  > 
  10.    
  11.  <mx:Stylesourcemx:Stylesource="com/passalong/assets/RED_SKIN_MAIN.css"/> 
  12.    
  13.  <mx:Script> 
  14.   <![CDATA[  
  15.    ...  

 ◆保持應(yīng)用程序樣式設(shè)置的最簡(jiǎn)便也是最安全的方法是使用外部樣式表。實(shí)際上,從一個(gè)CSS文件就能合理保存一個(gè)大型應(yīng)用程序的所有樣式。我選擇只使用一個(gè)CSS文件,出于兩個(gè)原因:第一個(gè)原因是我將始終知道到哪里可以找到我的樣式設(shè)置;第二個(gè)原因是在團(tuán)隊(duì)開(kāi)發(fā)情況下,其他開(kāi)發(fā)人員也可以很容易找到樣式。此外,一種好的做法是很好地組織該文件,因?yàn)殡S著應(yīng)用程序的增長(zhǎng),CSS文件也必然會(huì)增長(zhǎng)。

在構(gòu)建您自己的主應(yīng)用程序CSS文件時(shí),通常一種好的做法是首先放置那些默認(rèn)的組件樣式聲明。比如,若想要所有的工具提示在應(yīng)用程序中都具有同樣的外觀,就可以使用ToolTip作為樣式名并將其放置在文件的開(kāi)始。我趨向于將tooltip放置在應(yīng)用程序的所有內(nèi)容之前,以便讓我的應(yīng)用程序盡量的保持用戶(hù)友好性。因此,tooltip組件在應(yīng)用程序內(nèi)出現(xiàn)的次數(shù)比其他任何組件都要多。由于默認(rèn)組件樣式對(duì)應(yīng)用程序的整體觀感具有巨大的影響,所以您需要能夠快速和容易地訪問(wèn)到它們。這也是為什么要將這些樣式放在首位的原因了。

請(qǐng)注意在大多數(shù)應(yīng)用程序內(nèi),為每個(gè)組件創(chuàng)建一個(gè)默認(rèn)樣式并不意味著就完事大吉了。Button組件就是這樣一個(gè)例子。同樣地,要讓CSS代碼保持整齊,可以考慮對(duì)組件樣式子集進(jìn)行分組。比如,三個(gè)稱(chēng)為Button.musicPlayerPlay、Button.pageDown和Button.backToMenu的可選按鈕樣式將被一個(gè)挨一個(gè)地放置在樣式表內(nèi)并被來(lái)自其他樣式組的注釋所分隔。

 【編輯推薦】

  1. 四種聲明Flex CSS樣式的基本方法
  2. FlexBuilder4十大新特性閃亮登場(chǎng)
  3. 探索Flex和CSS的強(qiáng)大功能
  4. FlexBuilder3.0與Eclipse3.4的完美結(jié)合
  5. 解析Flex應(yīng)用開(kāi)發(fā)步驟 新特性和技術(shù)框架 
責(zé)任編輯:佚名 來(lái)源: ibm.com
相關(guān)推薦

2010-08-06 13:22:48

FlexCSS

2010-08-02 13:04:04

Flex3

2010-08-09 15:19:29

Flex滾動(dòng)條

2010-08-06 14:52:35

FlexCSS層疊樣式表

2010-08-10 15:26:38

Flex應(yīng)用程序

2010-08-09 10:34:05

Flex背景

2010-08-06 14:28:55

Flex CSS樣式

2010-08-10 16:41:54

FlexJSP

2010-07-29 15:36:23

Flex安全沙箱

2010-08-04 09:26:27

Flex數(shù)據(jù)

2010-07-27 10:39:25

Flex組件

2010-07-29 13:18:45

Flex右鍵菜單

2010-08-09 15:30:00

Flex字體

2010-08-12 11:05:33

Flex數(shù)據(jù)綁定

2010-07-27 15:49:28

Flex

2010-08-13 10:01:46

Flex樣式定義

2010-08-03 09:54:20

Flex鼠標(biāo)樣式設(shè)置

2010-08-13 09:30:37

Flex樣式

2010-08-03 09:27:29

設(shè)置Flex樣式

2010-08-11 08:44:01

Flex對(duì)象
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)