英文原文:《Flex Extensibility - Blink for Flex》
原文地址:http://www.onflex.org/ted/2006/06/flex-extensibility-blink-for-flex.php
译者:Dreamer
Flex 的可扩展性——Flex中的闪烁效果
多数开发者好像没有意识到Flex是可以扩展的。其中的XML当然可以扩展,除此之外Flex还允许你在你的程序中创建新的组件并扩展MXML。为了更清楚地说明这一点,我为Flex 写了这个 Blink 标签。
Blink Tag for Flex 2 (可以点击右键查看源代码)
HTML和它的成功一直对浏览器的HTML/Javascript版本有很强的依赖性。在下载的5MB-30MB的Internet Explorer和Firefox中每种浏览器都帮定了自己解释HTML和JS的逻辑。今天升级这种逻辑的唯一方法就是下载一个全新的浏览器。
通过Flash Player,浏览器和操作系统变成了完全独立的,这使得在旧的浏览器和操作系统中运行新的Flash Player和程序(Flex,Flash,Breeze)成为可能。
演习:
- 找一个旧版本的Netscape 3.0
- 安装 Flash Player 9
- 创建一个Flex 2 应用程序,它可以无缝工作!
Flash Player升级只需1MB的下载量,长远来看如果用来开发应用程序,Flash Player会比基础的浏览器有更好的兼容性。由此带来的结果就是使用了Flash Player的程序过渡的时候有更好的兼容性。
为了在Flash Player中支持组件,Adobe选择使用SWF和RSL格式向Flash Player传输组件。根本上来说,组件是同你的程序一块传输的,他们从不会在Flash Player中装载(ship)。这使player保持很小的体积并且允许开发者使用ActionScript以及所有Flash Player支持的格式(SWF,GIF,JPG,PNG,FLV,XML,AMF,MP3,以及其他)创造性地扩展你的程序。
package com.ted.text{ import mx.controls.Text;
public class Blink extends Text
{
public function Blink():void
{}
}
}
基本上来说这只是无改变地扩展了mx.controls.Text的一个简单的自定义的组件。把它放进com/ted/text包文件夹并把它命名为 Blink.as 然后你就有一个自定义的Flex组件了。因为它扩展的是mx.controls.Text,所以100%的Text中的逻辑就会默认地被展现出来,我的新的Blink组件只是包含了一些差别。阿……这就是继承。OK,让我们让这个组件闪烁起来,就像它的名字那样。
package com.ted.text{ import mx.controls.Text;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class Blink extends Text
{
private var blinkTimer:Timer;
public function Blink():void
{
this.blinkTimer = new Timer( 1000 , 0 );
this.blinkTimer.addEventListener( “timer” , toggleText );
this.blinkTimer.start();
}
public function toggleText( event:TimerEvent ):void
{
if( this.visible ){
this.visible = false;
}else{
this.visible = true;
}
}
public function get interval():uint
{
return this.blinkTimer.delay;
}
public function set interval( value:uint ):void
{
this.blinkTimer.delay = value;
}
}
}
阿哈,这个更好一点。我向这个类中添加了一个Timer并且添加了一个叫做 ’interval’ 的getter/setter方法用来改变Timer类的延迟(delay),还添加了一个方法来改变组件的可见性。所以现在我们有了一个可以在Flex 2中工作的Blink标签了。
需要记住的一些东西:
1.你可以自定义AS类来扩展MXML。
2.组件是在你的Flex程序中SWF文件中传输的。
3.旧的浏览器和新的Player是兼容的。
4.旧的SWF内容在Flash Player中总是向后兼容的。

