亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Flex > 正文

Flex3 界面布局教程

2024-09-12 17:51:29
字體:
來源:轉載
供稿:網友
對于一個擁有豐富組件的GUI設計工具來說,界面的布局技術成為界面美化的一個重要方面。Flex從控件的功能上大致提供了兩種方法:容器(控制布局),組件(提供GUI實質功能處理)。使用容器分層次管理GUI是當前的趨勢,Flex也使用了此種方式,主觀上我們認為它把我們界面上的組件通過容器進行了分組或分類布局管理。

接下來,我將通過簡單的示例逐個介紹各種界面布局的設計。

Canvas layout 容器

Canvas的界面布局,它定義了一個矩形框架的區域,用來放置用戶的容器和控件。不像其他的組件,你不能放任Flex的控件。你必須指定absolute或者constraint-based來指定組件的位置。Absolute模式必須指定x,y坐標。 Constrain-based必須指定side, baseline,或者center anchors. 接下來具體介紹兩種布局方式:

Absolute模式:你可以指定x,y坐標來指定每個組件的在容器的位置。坐標的是相對canvas 容器的左上角來設計的。即容器的左上角坐標為(0,0). X.y可以為正負值,如果是負值的話,組件就會放在超出容器可是范圍的位置。當然可以利用Actionscript來完成移動的操作,這就涉及到的event事件。

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" width="219" height="230">
    <mx:Canvas id="mycanvas" height="182" width="200"
     borderStyle="solid" backgroundColor="white">
        <mx:Button x="10" y="10" label="button1"/>
        <mx:Button x="50" y="67" label="Button2"/>
        <mx:Button x="92" y="129" label="Button3"/>            
    </mx:Canvas>
</mx:WindowedApplication>

效果如下圖:

constraint-based模式:這個分別介紹canvas Vbox以及Hbox的兩種組合。Canvas通常有x,y指定組件的位置,x,y默認的應該是0.所以你如果不指定x,那么將把組件放在x=0,的位置。這樣有可能出現重疊現象。當然也可以指定其他模式的布局,比如Vbox,或者Hbox。這樣就可以不指定x,y了。

 

 

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Canvas
width="340" height="247"
backgroundColor="#FFFFFF">
<mx:VBox id="vb"
     left="10"
       right="248"
       y="26"
       height="153"
       backgroundColor="#A9C0E7">
        <mx:Button label="button1" width="74"/>
       <mx:Button label="Button2"/>
       <mx:Button label="Button3"/>
       </mx:VBox>
<mx:HBox id="hBox2"
       left="100"
       right="27"
       y="26"
       height="153"
       backgroundColor="#A9C0E7">
       <mx:Button label="button4" />
       <mx:Button label="Button5"/>
       <mx:Button label="Button6"/>
   </mx:HBox>
   <mx:Button label="Button8" y="200"/>
   <mx:Button label="Button7" y="190"/>
 </mx:Canvas>

</mx:WindowedApplication>

效果如下圖:

 

Vbox或者Hbox 布局

前面介紹的把Vbox或者Hbox嵌入Canvas。其實他們本身都是一個容器,可以獨立使用的。效果跟上面圖中顯示的是一樣的。所以關于VBox,HBox就不再加以介紹了。舉個例子好了:

<?xml version="1.0"?>
<!-- containers/layouts/VBoxSimple.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:VBox borderStyle="solid"
      paddingTop="10"
      paddingBottom="10"
      paddingLeft="10"
      paddingRight="10">
    <mx:Button id="fname" label="Button 1"/>
   <mx:Button id="lname" label="Button 2"/>
   <mx:Button id="addr1" label="Button 3"/>
   <mx:ComboBox id="state">
  <mx:ArrayCollection>
   <mx:String>ComboBox 1</mx:String>
  </mx:ArrayCollection>
 </mx:ComboBox>
 </mx:VBox>
</mx:Application>

效果圖如下:

ControlBar layout 容器

你可以把controlbarpanel 或者titlewindow容器組合起來使用。這樣做的好處容器里的組件可以被panel或者titlewindow里的組件共用。(原文:You use the ControlBar container with a Panel or TitleWindow container to hold components that can be shared by the other children in the Panel or TitleWindow container.)舉個例子:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
private function addToCart():void {
// Handle event.
}
]]>
</mx:Script>
  <mx:Panel title="My Application"
      paddingTop="10" paddingBottom="10"
      paddingLeft="10" paddingRight="10">
  <mx:HBox width="250" height="200">
   <!-- Area for your catalog. -->
  </mx:HBox>
  <mx:ControlBar width="250">
   <mx:Label text="Quantity"/>
 <mx:NumericStepper/>
  <!-- Use Spacer to push Button control to the right. -->
  <mx:Spacer width="100%"/>
    <mx:Button label="Add to Cart"
    click="addToCart();"/>
  </mx:ControlBar>
 </mx:Panel>
</mx:WindowedApplication>

效果圖:

ApplicationControlBar 容器

  這個主要用來做界面頂部的導航條。這個容器menubar, combox button等組件。舉個例子:

<?xml version="1.0"?>
<!-- containers/layouts/AppCBarSimple.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
]]>
</mx:Script>
<mx:XMLList id="menuXML">
<menuitem label="File">
<menuitem label="New" data="New"/>
<menuitem label="Open" data="Open"/>
<menuitem label="Save" data="Save"/>
<menuitem label="Exit" data="Exit"/>
</menuitem>
<menuitem label="Edit">
<menuitem label="Cut" data="Cut"/>
<menuitem label="Copy" data="Copy"/>
<menuitem label="Paste" data="Paste"/>
</menuitem>
<menuitem label="View"/>
</mx:XMLList>
<mx:Array id="cmbDP">
<mx:String>Item 1</mx:String>
<mx:String>Item 2</mx:String>
<mx:String>Item 3</mx:String>
</mx:Array>
<mx:ApplicationControlBar id="dockedBar"
dock="true">
<mx:MenuBar height="100%"
dataProvider="{menuXML}"
labelField="@label"
showRoot="true"/>
<mx:HBox paddingBottom="5"
paddingTop="5">
<mx:ComboBox dataProvider="{cmbDP}"/>
<mx:Spacer width="100%"/>
<mx:TextInput id="myTI" text=""/>
<mx:Button id="srch1"
label="Search"
click="Alert.show('Searching')"/>
</mx:HBox>
</mx:ApplicationControlBar>
<mx:TextArea width="300" height="200"/>
</mx:Application>

效果圖:

DividedBox, HDividedBox VDividedBox 布局

  其實呢,DividedBox,Box 是非常類似的,唯一不同的在于它子Box板塊自建加入了一條分隔條,用戶可以更具自己需要來調整各個子Box板塊的大小。子Box板塊的分布可以分成兩種,水平以及垂直的。比如:

實現的代碼如下:

<?xml version="1.0"?>
<!-- containers/layouts/HDivBoxSimple.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundColor="white">
<mx:Script>
<![CDATA[
private function myGrid_initialize():void {
myGrid.dataProvider = [
{Artist:'Pavement', Album:'Slanted and Enchanted',
Price:11.99, Comment:'One of their best. 4 Stars.'},
{Artist:'Pavement', Album:'Brighten the Corners',
Price:11.99, Comment:'My favorite.'}
];
}
]]>
</mx:Script>
<mx:HDividedBox width="100%" height="100%">
<mx:Tree id="tree1"
width="30%" height="100%"
labelField="@label"
showRoot="true">
<mx:XMLList>
<menuitem label="Products">
<menuitem label="Posters" isBranch="true"/>
<menuitem label="CDs">
<menuitem label="Pavement"/>
<menuitem label="Pavarotti"/>
<menuitem label="Phish"/>
</menuitem>
<menuitem label="T-shirts" isBranch="true"/>
<menuitem label="Tickets" isBranch="true"/>
</menuitem>
</mx:XMLList>
</mx:Tree>
<mx:VDividedBox width="70%" height="100%">
<mx:DataGrid id="myGrid"
width="100%" height="100%"
initialize="myGrid_initialize();"
change="currentMessage.text=
event.currentTarget.selectedItem.Comment;"/>
<mx:TextArea id="currentMessage"
width="100%"
height="60"
text="One of their best. 4 Stars."/>
</mx:VDividedBox>
</mx:HDividedBox>
</mx:Application>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久免费观看视频| 国产精品美腿一区在线看| 成人av在线亚洲| 亚洲三级av在线| 亚洲精品综合久久中文字幕| 精品久久久久久久久久久| 4k岛国日韩精品**专区| 97视频在线观看网址| 日韩av免费在线看| 亚洲自拍偷拍网址| 国自产精品手机在线观看视频| 91精品国产九九九久久久亚洲| 欧美性xxxx极品hd欧美风情| 欧美大人香蕉在线| 久久久精品亚洲| 国产精品亚洲综合天堂夜夜| 97视频在线免费观看| 日本高清+成人网在线观看| 欧美高清视频在线观看| 亚洲国产一区二区三区在线观看| 欧美精品午夜视频| 亚洲欧洲在线看| 成人av在线网址| 亚洲日韩中文字幕在线播放| 久久精品成人一区二区三区| 激情亚洲一区二区三区四区| 精品久久久久久亚洲国产300| 亚洲国产成人久久综合一区| 成人xvideos免费视频| 国产日韩在线亚洲字幕中文| 久热在线中文字幕色999舞| 国产精品主播视频| 日韩欧美亚洲综合| 久久天天躁狠狠躁老女人| 亚洲aⅴ日韩av电影在线观看| 91久久久久久久久久| 国产一区二区三区在线观看视频| 欧美在线观看一区二区三区| 韩日精品中文字幕| 欧美亚洲第一页| 国产亚洲精品久久久久久777| 91精品视频一区| 81精品国产乱码久久久久久| 国产欧美日韩专区发布| 欧美亚洲国产日本| 欧美丰满老妇厨房牲生活| 亚洲国产小视频| 亚洲第一免费网站| 97精品欧美一区二区三区| 亚洲第一中文字幕在线观看| 国产精品美女av| 91色琪琪电影亚洲精品久久| 国产色视频一区| 26uuu另类亚洲欧美日本老年| 欧美色视频日本高清在线观看| 欧美精品免费在线| 欧美激情精品在线| 国产精品久久国产精品99gif| 国产97在线播放| 欧美三级xxx| 一本色道久久88精品综合| 久久久在线免费观看| 成人免费福利视频| 日韩精品视频免费专区在线播放| 国产日本欧美在线观看| 成人国产亚洲精品a区天堂华泰| 深夜福利国产精品| 久久99国产精品久久久久久久久| xxav国产精品美女主播| 亚洲视频在线观看网站| 欧美俄罗斯性视频| 亚洲精品99久久久久中文字幕| 精品视频—区二区三区免费| 狠狠躁夜夜躁久久躁别揉| 日韩经典一区二区三区| 国产亚洲激情视频在线| 热久久这里只有精品| 亚洲a∨日韩av高清在线观看| 国产中文字幕亚洲| 欧美孕妇与黑人孕交| 亚洲www永久成人夜色| 亚洲爱爱爱爱爱| 亚洲精品在线观看www| 欧美成人一区二区三区电影| 久久久影视精品| 欧美国产在线电影| 亚洲2020天天堂在线观看| 亚洲另类图片色| 精品国偷自产在线视频| 国产精品黄色影片导航在线观看| 91av在线播放| 日韩成人小视频| 欧美精品电影在线| 欧美性猛xxx| 亚洲精品ady| 有码中文亚洲精品| 国产精品久久久一区| 久久精品人人做人人爽| 亚洲一区二区三区毛片| 一本色道久久综合亚洲精品小说| 亚洲精品国产精品乱码不99按摩| 久久久女人电视剧免费播放下载| 欧美日韩国产综合视频在线观看中文| 欧美黄色片在线观看| 俺也去精品视频在线观看| 成人免费网站在线看| 亚洲午夜久久久影院| 91久久中文字幕| 久久韩剧网电视剧| 欧美黑人又粗大| 国产成人精品日本亚洲专区61| 久久九九有精品国产23| 久久久久久久国产精品视频| 欧美午夜美女看片| 欧美肥老妇视频| 亚洲女人初尝黑人巨大| 国产精品久久久久aaaa九色| 欧美日韩在线视频一区二区| 欧美日产国产成人免费图片| 国产精品白丝av嫩草影院| 亚洲国产精品va在线看黑人动漫| 亚洲精品国精品久久99热| 国产91色在线| 97视频在线观看网址| 日韩精品免费在线| 亚洲欧美日韩国产中文| 欧美www在线| 国产最新精品视频| 黑人巨大精品欧美一区二区三区| 欧美激情免费观看| 欧美巨大黑人极品精男| 亚洲综合中文字幕在线| 欧美性少妇18aaaa视频| 亚洲一区中文字幕在线观看| 一本一本久久a久久精品综合小说| 国产日韩在线看| 91av免费观看91av精品在线| 亚洲视屏在线播放| 日韩在线资源网| 国产高清在线不卡| 深夜福利91大全| 91久久在线视频| 亚洲成人久久久| 欧美日韩国产一区二区三区| 欧洲美女免费图片一区| 国产精品自产拍高潮在线观看| 少妇精69xxtheporn| 国产精品扒开腿做爽爽爽视频| 中文字幕精品久久久久| 日韩av在线免播放器| 亚洲一级免费视频| 日韩av在线网| 精品亚洲aⅴ在线观看| 国产欧美日韩中文字幕| 国内精品久久久久影院 日本资源| 中文字幕国产亚洲| 欧美日韩免费看| 国内精品久久久久影院 日本资源| 日韩在线欧美在线国产在线| xxav国产精品美女主播| 蜜臀久久99精品久久久无需会员| 亚洲第一区在线观看| xvideos国产精品| 久久国产天堂福利天堂|