|
首页 | 名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
上篇文章:http://www.webjx.com/htmldata/2005-03-09/1110356957.html 格式化 好了!我们已经知道怎样从一个组件中得到一个值并且把这个值放在另外一个组件中。但是这通常是不够的。有时我们需要在组件中的数据以不同方法展现;有时需要两个组件展示不同的数据。 我们以内建的格式开始,比如 Boolean(布尔值) 也许是最简朴的内建格式化方法。它仅仅是一个布尔值(或真或假)并且输出一个字符串。你可以通过真或假来选择要描述的值――在格式化选项中。
Bool_formatter.fla Compose String(排列字符串) 转变一个对象的域,形成单个字符串。你可以结合任何数量的域,也可以插入其他的字符。建立一个字符串模板,选择格式化选项并键入字符串。你也可以放置任何文本在这里,但是任何在”<>”表示符中的内容将被做为一个域来处理。假如对象有子对象(比如XML)那么,你可以使用它们――通过点语法来获得它们的路径。字符串模板的例子如下:
Compose_formatter.fla Date(日期)
Date_formatter.fla Number (数字)
Number_formatter.fla Rearrange Fields (重新排列的域) 让你可以协调域,比如一个组件的数据源中的域名和另一个组件数据源的域名不同的情况下。域是以列表的形式成对出现在格式化选项中。比如一个简朴的字符串:”label=name;data=colour;otherField=yetAnotherField”。这对于显示数据很有用,比如以下拉列表框和列表框显示数据;相应改变组件标签域属性,可以用重新排列的域格式化你想显示的作为标签的域。在这个例子中,一些XML文件已经加载了,用来移植到下拉列表框和它的域(重新排列的),所以名称属性被用作标签。
Rearrange_formatter.fla 要自定义格式,需要定义一个很简朴的类,它有两个方式:格式化和非格式化,为每种类型提供一个依据,并且可以返回任何东西。在这个例子中,类格式化数字为英镑符号: 代码:// class used to convert numbers to sterling currency and back again class SterlingFormatter { // turns a number into a string function format (data:Number) : String{ var currency:String; var pounds:Number = Math.floor(data); var pence:Number = Math.round((data - pounds)*100); var poundsStr:String = String(pounds); var penceStr:String; if(pence<10){ penceStr = "0" + String(pence); }else{ penceStr = String(pence); } currency = "£" + pounds + "." + penceStr; return currency; } // removes sterling format and returns a number function unformat (data:String) : Number { var str:String = data.substr(1); var num:Number = parseFloat(str); return num; } } 键入一个数值在左边,看看有边会有什么格式产生
局限、防范、实践 创作时的数据绑定是基于mc路径的,这将带来一些局限和危险。主要的问题是当你建立一个在两个组件之间的绑定时,这两个组件的实例必须被唯一的标识,而且这也依靠它们的路径。因此,假如你改变了一个组件的路径,之后再提供绑定,将会丢失这个绑定。尽管我已经注重到你可以安全的改变组件实例的名字不必改变它们的绑定。 通常,在运行时,组件可以从绝对路径上解决绑定问题。但是假如你提供到一个舞台上不存在的mc的绑定,绑定将从可以被识别的mc中选择“最远的”。问题是同样的mc将被不同的解释,假如该mc是在舞台上编辑过的或者在库中编辑的。要避免混乱、冲突、遗失已完成的内容,你需要遵循如下的指导方针: 1、 不要对这样的mc使用绑定:即在创作过程中加到舞台上,又使用了动态附加的; 总的说来,以上的讲解只是引导你用窗体建立最简朴的应用程序的开始,你还要添加很多的场景和组件。使场景都这场运转起来后再加入数据绑定。最后一点要说明(有点讨厌但它也确实是个尖锐的问题,在很多情况都会发生)。 假如你已经看过源文件,你就会发现我在引导层加入了一些箭头符号。这对于简朴的绑定来说无关紧要,但是一些复杂的系统绑定是很难跟踪的,所以我提倡这样做:用最原始的“文档”来说明你在做着什么。用语言来描述你所做的绑定是比较困难的,但是图示可以很只管的表达绑定的意思。假如一些东西需要比较具体的说明,那么在一个引导层用文本来注释是很有帮助的。这些箭头不是正是的符号,重要的是可以保留一些对将要发生的事情的暗示。 结束 然而你也许不会选择数据绑定面板来开发企业级应用程序,你也许直接会用运行时的API。但是数据绑定面板可以迅速的提供一个原型或小型应用程序,因为它们提供了异常简朴的方式来构建复杂的数据交互。身份认证和格式化都可以通过AS2实现可扩展功能,是没有限制的。 附源文件下载: 返回类别: Flash教程 上一教程: Flash游戏开发系列一:游戏中的敌人1 下一教程: 关于控制影片的播放和倒退 您可以阅读与"Flash MX 2004 数据绑定(2)"相关的教程: · Flash MX 2004 数据绑定(1) · Flash MX 2004实例制作视频教程:《火影忍者》动画片头制作(4) · Flash MX 2004实例制作视频教程:机器猫动画片头5 · Flash MX 2004实例制作视频教程:飘舞的雪花 · FLASH MX 2004右键菜单秀 |
快精灵印艺坊 版权所有 | 首页会员中心在线印刷在线编辑付款方式索取样品设计指南连锁门店 |