创建用户界面
我想以层的形式创建Flex应用程序,首先是用户界面,然后在框架中添加代码以实现互动性。首先,若尚未安装Flex SDK则先安装。Flex SDK是免费软件,Flex Builder 2 IDE也有免费试用版。可从http://www.flex.org/download下载Flex SDK。Flex SDK是免费的,Flex 3 SDK也将成为开源软件。Flex Builder是一种基于Eclipse的开发环境,通过拖放控件即可创建界面,但本例不必使用该工具。我非常喜欢使用标签,因此通常采用代码视图并直接修改MXML。
我想在界面顶部放置几个控件并在底部放置一个数据网格,以显示表中的数据。顶部的控件就是两个下拉列表,可在其中选择数据库和表。
该窗体的MXML如清单2所示。
清单2:flexmysql1.mxml
<?xml version="1.0" encoding="utf-8"?><br><application xmlns:mx="<FONT color=#333333 size=3>http://www.adobe.com/2006/mxml</FONT>" layout="vertical"><br><vbox horizontalalign="left"><br><hbox><br><label text="Database:"></label><br><combobox id="selectedDatabase" width="381" height="21"><br></combobox><br></hbox><br><hbox><br><label text="Table:"></label><br><combobox id="selectedTable" width="381" height="21"><br></combobox><br></hbox><br><datagrid id="dg1" width="452"><br></datagrid><br></vbox><br></application> 登入後複製 |
在Flex Builder 2中编译及运行这段代码时,结果如图1所示。
图1:界面布局 |
相当整洁,对吧?渐变背景很漂亮,控件也很美观。我只做了极少量的工作。当然,图形设计师也可添加一些修饰,以使其更加美观,例如过渡效果和图像。而我还是喜欢整洁的界面,并要确保它在每台客户机上都具有一致的外观和表现,而Ajax应用程序要做到这一点并不容易。
获取数据库清单
补充Flex应用程序代码的第一步就是,当应用程序加载后在窗体顶部显示数据库的组合框。相关代码如清单3所示。
清单3:flexmysql2.mxml
<p><?xml version="1.0" encoding="utf-8"?><br><application xmlns:mx="<FONT color=#333333 size=3>http://www.adobe.com/2006/mxml</FONT>" layout="vertical">initialize="onInitialize()"><br><script><br>import mx.collections.ArrayCollection;<br>private static const SERVICE_BASE:String = "<font color="#333333" size="3">http://localhost/sql/req.php</font>";<br>public function onInitialize():void<br>{<br>myservice.url = SERVICE_BASE;<br>myservice.send( null );<br>} public function onResult(event:Event):void<br>{<br>selectedDatabase.dataProvider = myservice.lastResult..database.*;<br>}<br>]]><br></script><br><httpservice id="myservice" result="onResult(event)" resultformat="e4x"><br></httpservice><br><vbox horizontalalign="left"><br><hbox><br><label text="Database:"></label><br><combobox id="selectedDatabase" width="381" height="21"><br></combobox><br></hbox><br><hbox><br><label text="Table:"></label><br><combobox id="selectedTable" width="381" height="21"><br></combobox><br></hbox><br><datagrid id="dg1" width="452"><br></datagrid><br></vbox><br></application></p> 登入後複製 |