跳到主要內容

Actionscriprt3.0一些觀念(四)

1.類別
每個Actionscript3的Class都必須放在一個和Class名稱相同的.as文件中。

一個類別的定義包含package路徑的定義,Class的名稱、屬性、方法、靜態屬性、靜態方法、構造函數。

每個.as文件中可以放置多個Class,但是只有與檔案名稱同名的Class才可以對外不可見
1.package關鍵字後面的括弧內,必須且只能定義一個Class
2.在package括弧內的Class必須與文件同名
3.在括弧外,可定義一個或多個Class,不可與文件同名。這些括弧外的類別稱為目前類別文件的套件外類別。只有目前類別文件中的成員類別可存取。

封裝概念---- 套件外-->套件-->類別-->套件外類別

import "*"這是通用自元,一次導入套件內所有類別。

2.getter & setter
package 
{
 public class gettterandsetter
 {
  private var _realhello:String ="hello flash";
  public var gettime:int=0;
  public var settime:int=0;
  
  public function get hello():String
  {
   gettime++;
   return _realhello;
  }
  public function set hello(ns:String):void
  {
   settime++;
   _realhello = ns;
  }
 }
}

package
{
 import flash.display.Sprite;
 public class SampleGetterAndSetter()
 {
  var foo:gettterandsetter = new getterandsetter();
  trace(foo.hello);
  //hello, flash!
  foo.hello = "hi actionscript3.0"
  trace(foo.hello);
  //hi actionscript3.0
  trace(foo.gettime);
  //2
  trace(foo.settime);
  //1
 }
}
3.命名空間
(看就知道了)
package
{
 import flash.display.Sprite;
 public class SamplePlayer extends Sprite
 {
  public function SamplePlayer()
  {
   use namespace ball;
   //打開命名空間ball
   var foo:Player = new Player();
   foo.da();
   //輸出:打():我要玩一下球
   
   //下面兩行明確指定使用哪一個命名空間的方法
   foo.phone::da();
   //輸出:打():我要撥電話
   foo.ball::da();
   //輸出:打():我要玩一下球
  }
 }
}
//命名空間
namespace phone;
namespace ball;
class Player
{
 //應用命名空間phone
 phone function da()
 {
  trace("打():我要撥電話");
 }
 //應用命名空間ball
 ball function da()
 {
  trace("打():我要玩一下球");
 }
}

留言