快速业务通道

Java程序员ActionScript 3入门 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
ckage com.jherrington.animals {    import flash.geom.Point;    public class Animal    {      public var name:String = "";      private var age:int = 0;      private var location:Point = new Point(0,0);      public function Animal( _name:String, _age:int = 30 )      {        name = _name;        age = _age;      }      public function moveTo( x:int, y:int ) : void {        location.x = x;        location.y = y;      }      public function getLocation( ) : Point {        return location;      }    } }

正如你所看到的,我又添加了一个私有成员变量location,类型是我从Flash 的geometry包中引入的Point类型。而且我还添加了两个方法来操作location: moveTo,用来移动animal;getLocation,用来返回当前的位置。

到目前为止,这还是以Java的方式去get和set一个值。但ActionScript方式会 清晰很多,请看示例:

package com.jherrington.animals {    import flash.geom.Point;    public class Animal    {      public var name:String = "";      private var age:int = 0;      private var myLocation:Point = new Point(0,0);      public function Animal( _name:String, _age:int = 30 )      {        name = _name;        age = _age;      }      public function set location( pt:Point ) : void {        myLocation = pt;      }      public function get location( ) : Point {        return myLocation;      }    } }

Java程序员ActionScript 3入门(3)

时间:2011-05-20 infoq.com Jack Herrington 译:张凯

这里我使用get和set函数,它们会在客户代码获取或设置成员变量location时 被调用。对于客户代码来说,location变量看起来就像是个普通的成员变量。但 事实上,你可以用你喜欢的任何代码来响应成员变量的设值,以及处理变量的获 取。

如何来使用它呢?你可以添加一个事件,这个事件会在location发生改变时被 触发。请看示例代码:

package com.jherrington.animals {     import flash.events.Event;    import flash.events.EventDispatcher;    import flash.geom.Point;    public class Animal extends EventDispatcher    {      public var name:String = "";      private var age:int = 0;      private var myLocation:Point = new Point(0,0);      public function Animal( _name:String, _age:int = 30 )        name = _name;        age = _age;      }      public function set location ( pt:Point ) : void {        myLocation = pt;        dispatchEvent( new Event( Event.CHANGE ) );      }      public function get location( ) : Point {        return myLocation;      }    } }

现在,我指定Animal类是一个事件分发者——也就是说,客户代码可以从这个 对象监听到事件发生。接着,当location改变时,我发出了一个新的事件。

下面就是客户代码,它创建了一个animal对象,并开始监听事件是否发生,然 后就改变了animal的location:

var a:Animal = new Animal();    a.addEventListener(Event.CHANGE, function( event:Event ) : void {      trace( "The animal has moved!" );    } );    a.location =

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号