6.4.创建自定义可视化类

问题
我要创建新的可视化类
解决办法
继承DisplayObject 或它的子类来创建新类
讨论
基于新的可视化对象列表模型创建新的类是非常方便的。这在过去,只有继承MovieClip 才能创建新的类,现在完全不同了,新的可视化模型处理起来更简单,用ActionScript代码可以做更多的事情了。

新的可视化模型,正如介绍里讨论过的那样,现在除了MovieClip.还有很多可视化类可用。在你创建新类前,你需要决定的是创建什么类型的类。比如说你要创建一个图形类,这就要继承Shape类,如果你要创建自定义按钮,你可能要继承SimpleButton类。如果你要创建一个容纳其他对象的容器,Sprite 就是个很好的继承类,它不需要使用时间线,如果你需要时间线,需要继承MovieClip。

所有的可视化类都有其特定用途,当你创建类时首先要决定新的类是什么用途,然后选择相应的基类继承之。选择什么做父类也是很讲究的,不然会造成性能下降和资源浪费。比如一个简单的Circle 类不需要继承自MovieClip ,应该不需要时间线,Shape 类才是作为父类的最后选择。

基类写好了,接着就该写代码了,看下面的例子:创建了一个Circle 类,继承自Shape 类,文件名为Circle.as:
+展开
-ActionScript
package {
import flash.display.Shape;
public class Circle extends Shape {
private var _color:uint;
private var _radius:Number;
public function Circle( color:uint = 0x000000, radius:Number = 10 ) {
_color = color;
_radius = radius;
draw( );
}
private function draw( ):void {
graphics.beginFill( _color );
graphics.drawCircle( 0, 0, _radius );
graphics.endFill( );
}
}
}

上面的代码定义了新的Circle 可视化类,创建Circle 实例时可以指定颜色和半径。

现在只要把Circle 类实例用addChild( ) 或addChildAt( ) 加到可视化对象列表中就可以在屏幕上显示了。下面的代码例子创建了Circle 实例并显示在屏幕上:
+展开
-ActionScript
package {
import flash.display.Sprite;
public class UsingCircleExample extends Sprite {
public function UsingCircleExample( ) {
var red:Circle = new Circle( 0xFF0000, 10 );
red.x = 10;
red.y = 20;
var green:Circle = new Circle( 0x00FF00, 10 );
green.x = 15;
green.y = 25;
var blue:Circle = new Circle( 0x0000FF, 10 );
blue.x = 20;
blue.y = 20;
// Add the circles to the display list
addChild( red );
addChild( green );
addChild( blue );
}
}
}

加支付宝好友偷能量挖...


评论(0)网络
阅读(79)喜欢(0)flash/flex/fcs/AIR