Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65488
  • 博文数量: 16
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-06 17:09
文章分类
文章存档

2011年(1)

2009年(6)

2008年(9)

我的朋友

分类:

2008-04-05 22:50:22

 

整合 Flex 2 与 PHP (二)

构建用户界面

flex 应用程序综合使用 acti 3.0 和 mxml。acti 基于 ecmascript (类似于 javascript),所以网络开发人员看它应该挺眼熟。mxml 是用于 flex 应用程序的排版引擎,它是基于 xml 的。本质上,你使用 xml 布置用户界面,然后使用 acti 编写界面程序。界面的 mxml 也是非常简单的 (仅 26 行):
{username.text}{emailaddress.text}
让我们详细地研究每一行。以下是每个 flex 应用程序都会有的前两行:
第一行声明这是一个 xml 文档。第二行声明这是一个应用程序,为 mx 组件提供名字空间,声明布局是绝对的 (意味着你可以以精确的 x 和 y 坐标定位项目。其他的选项有水平布局或者垂直布局),最后 creationcomplete="userrequest.send()" 指定在加载用户界面完成时,应用程序调用 id 为 userrequest 的 mxml 组件的 send() 函数。
接下来的部分是建立 httpservice 以便利用你编写的 php 脚本发送和接收数据:
{username.text}{emailaddress.text}
在这部分,你设置 id 为 userrequest, 然后提供访问 php 脚本的 url。你设置提交方法为 post (你也可以使用 get,但是那样的话你必须改变 php 脚本中的变量名称)。请求它包含两个变量,username 和 emailaddress。这个代码也把 post 中的变量 username 的值设置为 id 为 username 的元素的 text 属性(username.text);php 变量 _post["emailaddress"] 的值被设置为 id 为 emailaddress 的元素的 text 属性。使用 { 和 } 大括号可以将变量绑定到用户界面元素的值。
再说几句,如果你将 改变成 , 你必须去修改 php 代码,将变量 _post["username"] 改为 _post["user_name"]。如果你把 {username.text} 改成 {user_name.text},你必须修改 mxml 代码,把 id 为 username 的元素的 id 改为 user_name。

creating a form

下一步,你将建立一个简单的表单:
注意你可以布局精确表单的 x 和 y 坐标及设置它的精确的宽。然后,两个包含从左到右排列的一个标签和一个文本输入框的 hbox,这两个 hbox 是上下排列的。最后,你的提交按钮出现在表单的结尾。当一个用户点击按钮,应用程序调用 id 为 userrequest 元件的 send() 函数(在这里,是那个 httpservice 元件)。
现在你已经构建了向数据库提交新条目的功能,但是你怎么在 flex 应用程序中显示他们呢?使用如下代码:
这样, 你使用一个 datagrid 组件去利用 userrequest httpservice 返回的 xml 构建它自己的内容。你返回的是一个 xml 文档。这样,你将 datagrid 组件绑定到返回 xml 文档中的用户元素。返回的 xml 看起来像以下这样:
1 joe schmoe 2 betty schmoe
注意,你所绑定的元素是返回的实际元素,不包括这个元素两端的标签。
datagrid 组件显示数据库中人员的用户 id 和用户名。我决定不在 datagrid 中显示 email 地址,但是你也可以添加另外一列去显示它。注意列名元素需要与 xml 元素直接对应。datagrid 组件可以允许使用者对内容进行排序,或者对选中的行高亮显示——你不需要做任何事,它自己会处理!
最后,你加上一个 textinput 组件去显示选中的用户的 email 地址,使用 dguserrequest.selecteditem.emailaddress, 然后加上一个 xml 结束标签。
就是它了。你完成了一个简单的对 mysql 数据库进行提交和检索数据的 flash 应用程序,使用 php 作为后台程序。

接下来的方向

我强烈的希望你下载 flex builder 2,然后利用 php, mysql, 以及 adobe flex 编写一些更复杂的程序。请访问我的博客来了解更多关于 adobe flex 2 的信息,同时关于未来的文章也请留些建议,以及你打算看到的其他使用同系列技术的例子。你也可能打算阅读我的另一篇文章: 使用 flex 2 和 amfphp.
 

关于作者

mike potter 进行开发网站和网络应用程序已经超过八年了。在 php 设计方面,他有丰富的经验,构建过加拿大最大的业余体育组织网站:加拿大冰壶协会。开发这个网站之后,他去 oe 工作,在那他帮助实现了一个在 mozilla 网络浏览器中允许的基于 linux 的桌面系统。他帮助开放那个桌面系统的日历程序的源代码,之后在 mozilla 日历项目中工作了一年。mike 在 2005 年加入 adobe,现在作为开源软件和网络开发的传道者工作于开发人员交流部门。
阅读(1036) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~