代码一. 关于继承(Inheritance)与覆盖复写(override)

  定义一个MyBaseClass的类,该类有一个sayHello的方法

  package {

  public class MyBaseClass {

  public function sayHello():void

  {

  trace("Hello from MyBaseClass");

  }

  }

  再定义一个MySubClass的子类继承子MyBaseClass父类,并添加一个sayGoodbye()的方法

  }

  package {

  public class MySubClass extends MyBaseClass {

  public function sayGoodbye():void {

  trace("Goodbye from MySubClass");

  }

  }

  }

  然后我们可以在主时间轴第一帧输入:

  var base:MyBaseClass = new MyBaseClass();

  base.sayHello();

  var sub:MySubClass = new MySubClass();

  sub.sayHello();

  sub.sayGoodbye();

  这样该子类不仅继承了父类的方法,还拥有自己的方法!

  /

  //复写原有父类的方法

  //另外我们可以改写子类内容为,继承自父类,覆盖了父类的sayHello(),并且拥有自己的方法.

  package {

  public class MySubClass extends MyBaseClass {

  override public function sayHello():void {

  trace("Hola from MySubClass");

  }

  public function sayGoodbye():void {

  trace("Goodbye from MySubClass");

  }

  }

  }

  //需要注意的是.父类的私有(private)方法是不能被覆盖复写的//

  //

  代码二.一个影片剪辑/Sprite的子类

  package {

  import flash.display.Sprite;

  public class SpaceShip extends Sprite {

  private var speed:Number = 0;

  private var damage:Number = 0;

  private var fuel:Number = 1000;

  public function takeOff():void {

  // . . .

  }

  public function crash():void {

  // . . .

  }

  public function shoot():void {

  // . . .

  }

  public function selfDestruct():void {

  // . . .

  }

  }

  }

  这样的话我们创建的SpaceShip类不但继承了Sprite显示容器类的公开方法和属性,还定义了自己的属性和方法

  //注意:要在一开始的时候导入flash.display类包中的Sprite或者是MovieClip类

  //

  代码三.创建文档类和第一个ActionScript 3.0应用程序

  //创建一个Test文档类,

  package {

  import flash.display.Sprite;

  public class Test extends Sprite {

  public function Test() {

  init();

  }

  private function init():void {

  graphics.beginFill(0xff0000);

  graphics.drawEllipse(100, 100, 100, 100);

  graphics.endFill();

  }

  }

  }

  然后在主FLA文件进行绑定


  //后面文章大致说的是3种编译AS3.0的方法,包括FLASH CS3IDE & Flex Builder 2 & The free Flex/AS 3 command-line compiler and Flex 2 SDK ,以及怎样使用编译代码的方法,就省略了,过...

  ///再后面说的好象是以帧循环的形式来实现动画效果.大致就是2个关键帧来回刷的意思.略了.//

  ///在书32页开始好象讲事件了//

  代码四.事件与帧听

  ///之前一段说的大致意思就是你可以用字符串"enterFrame"来添加帧听器,也可以用Event.ENTER_FRAME来添加帧听,两者的效果是一样的,因为在Event事件类中已经定义了该公共常量,详细可以查帮助.

  package {

  //导入相关类

  import flash.display.Sprite;

  import flash.events.MouseEvent;

  //创建一个EventDemo继承自Sprite

  public class EventDemo extends Sprite {

  private var eventSprite:Sprite;

  public function EventDemo() {

  //构造函数执行init();方法

  init();

  }

  private function init():void {

  //创建一个显示容器,并显示在舞台

  eventSprite = new Sprite();

  addChild(eventSprite);

  //在里面画东西了

  eventSprite.graphics.beginFill(0xff0000);

  eventSprite.graphics.drawCircle(0, 0, 100);

  eventSprite.graphics.endFill();

  //容器居中

  eventSprite.x = stage.stageWidth / 2;

  eventSprite.y = stage.stageHeight / 2;

  //并为该容器添加2个MouseEvent

  eventSprite.addEventListener(MouseEvent.MOUSE_DOWN,

  onMouseDown);

  eventSprite.addEventListener(MouseEvent.MOUSE_UP,

  onMouseUp);

  }

  private function onMouseDown(event:MouseEvent):void {

  trace("mouse down");

  }

  private function onMouseUp(event:MouseEvent):void {

  trace("mouse up");

  }

  }

  }

  ///

  代码五.第一个基于AS3.0动画的例子

  package {

  //导入相关类

  import flash.display.Sprite;

  import flash.events.Event;

  //创建主文档类容器

  public class FirstAnimation extends Sprite {

  private var ball:Sprite;

  public function FirstAnimation() {

  //构造函数

  init();

  }

  private function init():void {

  //创建实例

  ball = new Sprite();

  addChild(ball);

  //绘制图象

  ball.graphics.beginFill(0xff0000);

  ball.graphics.drawCircle(0, 0, 40);

  ball.graphics.endFill();

  //定位

  ball.x = 20;

  ball.y = stage.stageHeight / 2;

  //添加Event.ENTER_FRAME事件帧听

  ball.addEventListener(Event.ENTER_FRAME, onEnterFrame);

  }

  private function onEnterFrame(event:Event):void {

  ball.x++;

  }

  }

  }

  //PS:因为这是 Flash Player 更新屏幕的速度。每个显示对象都有 enterFrame 事件,它根据 SWF 文件的帧速率来调度,即每帧一个事件。创建脚本动画的大多数开发人员都使用 enterFrame 事件作为一种方法来创建随时间重复的动作.

  /

  代码六.显示列表 P38

  package {

  import flash.display.Sprite;

  import flash.events.MouseEvent;

  //创建主文档类

  public class Reparenting extends Sprite {

  //定义3个容器

  private var parent1:Sprite;

  private var parent2:Sprite;

  private var ball:Sprite;

  public function Reparenting() {

  init();

  }

  private function init():void {

  //第一个父容器

  parent1 = new Sprite();

  addChild(parent1);

  parent1.graphics.lineStyle(1, 0);

  parent1.graphics.drawRect(-50, -50, 100, 100);

  parent1.x = 60;

  parent1.y = 60;

  //第二个父容器

  parent2 = new Sprite();

  addChild(parent2);

  parent2.graphics.lineStyle(1, 0);

  parent2.graphics.drawRect(-50, -50, 100, 100);

  parent2.x = 170;

  parent2.y = 60;

  //还有一个ball的子容器

  ball = new Sprite();

  //注意:是在第一个父容器内添加了ball,并显示

  parent1.addChild(ball);

  ball.graphics.beginFill(0xff0000);

  ball.graphics.drawCircle(0, 0, 40);

  ball.graphics.endFill();

  //为该子容器添加一个CLICK事件

  ball.addEventListener(MouseEvent.CLICK, onBallClick);

  }

  public function onBallClick(event:MouseEvent):void

  {

  //事件内容是在第二个父容器内添加该自容器

  parent2.addChild(ball);

  }

  }

  }

  //

  代码七.鼠标事件 P43

  AS3相关的鼠标事件有:

  CLICK DOUBLE_CLICK MOUSE_DOWN MOUSE_MOVE MOUSE_OUT

  MOUSE_OVER MOUSE_UP MOUSE_WHEEL ROLL_OUT ROLL_OVER

  //

  代码:

  package {

  import flash.display.Sprite;

  import flash.events.MouseEvent;

  public class MouseEvents extends Sprite {

  public function MouseEvents() {

  init();

  }

  private function init():void

  {

  var sprite:Sprite = new Sprite();

  addChild(sprite);

  sprite.graphics.beginFill(0xff0000);

  sprite.graphics.drawCircle(0, 0, 50);

  sprite.graphics.endFill();

  sprite.x = stage.stageWidth / 2;

  sprite.y = stage.stageHeight / 2;

  sprite.addEventListener(MouseEvent.CLICK, onMouseEvent);

  sprite.addEventListener(MouseEvent.DOUBLE_CLICK,

  onMouseEvent);

  sprite.addEventListener(MouseEvent.MOUSE_DOWN,

  onMouseEvent);

  sprite.addEventListener(MouseEvent.MOUSE_MOVE,

  onMouseEvent);

  sprite.addEventListener(MouseEvent.MOUSE_OUT,

  onMouseEvent);

  sprite.addEventListener(MouseEvent.MOUSE_OVER,

  onMouseEvent);

  sprite.addEventListener(MouseEvent.MOUSE_UP,

  onMouseEvent);

  sprite.addEventListener(MouseEvent.MOUSE_WHEEL,

  onMouseEvent);

  sprite.addEventListener(MouseEvent.ROLL_OUT,

  onMouseEvent);

  sprite.addEventListener(MouseEvent.ROLL_OVER,

  onMouseEvent);

  }

  public function onMouseEvent(event:MouseEvent):void{

  trace(event.type);

  }

  }

  }

  //以上代码是给这个Sprite注册了10种不同的鼠标事件,并输出事件类型

  //后面一段文字又大致讲了一下鼠标点,就是鼠标所在的位置,可以用

  //mouseX is 150. mouseY is 250.

  //sprite.mouseX is 50. sprite.mouseY is 150.

  //前两个是舞台上鼠标的位置,而后者是容器内鼠标相对与容器的位置

  //

  代码八.键盘事件

  //先说了一下大致介绍了一下以前AS2的键盘事件

  //大致说了一下AS3的键盘事件就2种KEY_DOWN ,KEY_UP.

  //然后好象是说要帧听键盘事件的对象要赋予他焦点stage.focus = sprite;

  代码:

  package {

  import flash.display.Sprite;

  import flash.events.KeyboardEvent;

  public class KeyboardEvents extends Sprite {

  public function KeyboardEvents() {

  init();

  }

  private function init():void {

  //给主舞台添加键盘事件帧听

  stage.addEventListener(KeyboardEvent.KEY_DOWN,

  onKeyboardEvent);

  stage.addEventListener(KeyboardEvent.KEY_UP,

  onKeyboardEvent);

  }

  //然后帧听到后输出该事件类型

  public function onKeyboardEvent(event:KeyboardEvent):void {

  trace(event.type);

  }

  }

  }

更多关于actionscript 3.0宝典的知识可以查询天地会http://bbs.9ria.com/thread-69907-1-1.html