理解 Flex itemRenderer 第 3 部分: 通信
原文地址:http://www.adobe.com/cn/devnet/flex/articles/itemrenderers_pt3.html
在本系列的第 2 部分中, 我向您展示了如何使用 MXML 和 ActionScript 创建外部 itemRenderer。在我用过的示例中, 有一个调度自定事件 BuyBookEvent 的 Button-这样应用程序可以对它作出响应。本文进一步讨论与 itemRenderer 的通信。
我坚信有一条规则是永远不能违背的: 不能抓住 itemRenderer 的实例不放, 更改它 (设置公共属性) 或调用它的公共方法。这对我而言是一个禁忌。itemRenderer 是很难弄清的, 我在第 1 部分中说到了其中的缘由: itemRenderer 是循环使用的。抓住一个会破坏 Flex 框架。
请将这条规则谨记在心, 您可以使用 itemRenderer 完成以下操作:
itemRenderer 可以通过它的列表所有者调度事件。 (您已经看到过冒泡; 这个做法更好, 接下来您就会看到。)
itemRenderer 可以使用静态类成员。其中包括 Application.application。如果您的值“全局”存储在应用程序对象中, 您可以通过这种方式获得它们。
itemRenderer 可以使用拥有它的列表的公共成员。接下来您就会看到。
itemRenderer 可以使用数据记录中的任何内容。例如, 记录中的某个项目不用于直接显示, 但它却影响 itemRenderer 的行为方式。
本系列包含以下文章:
第 1 部分: 内联渲染器
第 2 部分: 外部渲染器
第 3 部分: 通信
第 4 部分: 状态和过渡
第 5 部分: 效率
要求
为了充分利用本文, 您需要以下软件和文件:
Flex Builder 3
必要条件
要从本文中受益, 您最好熟悉 Flex Builder 和 ActionScript 3.0。
动态更改 itemRenderer
以下是上一篇文章中用于 TileList 的 MXML itemRenderer。我将使它对外部源 (我将这个文件称为 BookItemRenderer.mxml) 的更改作出反应, 从而使它更生动:
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="250" height="115" >
<mx:Script>
<!--[CDATA[
]]>
</mx:Script>
<mx:Image id="bookImage" source="{data.image}" />
<mx:VBox height="115" verticalAlign="top" verticalGap="0">
<mx:Text text="{data.title}" fontWeight="bold" width="100%"/>
<mx:Spacer height="20" />
<mx:Label text="{data.author}" />
<mx:Label text="Available {data.date}
相关文档:
Flex中的嵌入资源(Embedding Assets)——Swingguy摘译自Flex 3 Developer's Guide,转载请注明2007-10-27 17:18 Flex软件中经常需要使用一些外部的资源,如图片、声音、SWF或字体,虽然你也可以在软件运行的时候引入和载入,但是也可能经常需要直接将这些资源 ......
1-首先写一个加载外部swf文件的类
package Package
{
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.events.*;
import flash.net.URLRequest;
import mx.core.UIComponent;
import mx.events.FlexEvent;
public class CtmOb ......
1月17日
Flex开源框架汇总
Cairngorm (download)
Cairngorm是一个最早最为成熟的FLEX框架,现在已归为ADOBE门下.
PureMVC (download)
它其实是一个ActionScript 3框架,不像Cairngorm,它并不是针对FLASH,FLEX或者其它ADOBE AS3.0类。它是一个用于开发基于FLASH的AS 3.0的任何程序.
Model-Glue: Flex (download)
Model- ......
//假设二维数组为 [5][7]
var xn:Number = 5;
var yn:Number = 7;
//定义一数值变量
var temp:Number = 0; //定义我们的二维数组
var myArray:Array = new Array(); //填充二维数组
for(var i=0;i ......
PopUpEffect.as
package
{
import flash.display.DisplayObject;
import mx.core.IFlexDisplayObject;
import mx.effects.Blur;
import mx.events.TweenEvent;
import mx.managers.PopUpManager;
public class PopUpEffect
{
public function PopUpE ......