2011年5月11日

[AS3.0]初體驗紀錄_基礎code

三個核心抽象類別(Abstract Class)
1.DisplayObject(顯示)
2.InteractiveObject(顯示+互動)
3.DisplayObjectContainer(顯示+互動+容器)

所有的顯示物件都繼承1類別,屬性有x,y,width,height.....等
2類別繼承自1外,還增加了滑鼠和鍵盤的互動。實體子類別TextField & SimpleButton
3類別具有1和2的功能外,還有當容器的角色,這部份有Stage,Sprite,Loader,MovieClip
  Stage舞台
  Sprite容器(沒有時間軸)
  Loader載入外部資源
  MovieClip容器(有時間軸的動畫)

動態加入刪除物件
numChildren
  容器.numChildren屬性用來找到它所有的子物件量
getChildAt
  容器.getChildAt(int)方法用來得到子物件指標(類別)
addChild / removeChild
  容器.addChild(物件) 將物件放到時間軸的顯示中
addChildAt / removeChildAt
  容器.addChildAt(物件,深度) 將物件放到時間軸的顯示中,並給予深度
  ※深度:0最底層;n最上層
swapChildren / swapChildrenAt
  容器.swapChildren(物件A,物件B) 將兩物件互換
  容器.swapChildrenAt(深度A,深度B) 將不同深度兩物互換
getChildIndex / setChildIndex
  容器.getChildIndex(物件) 取得物件深度
  容器.setChildIndex(物件,深度) 設定物件深度
  //2011.8.26加註 使用方式 例如view.testMC 要在整個view下放到最上層
  view.setChildIndex(view.testMC , view.numChildren);
getChildByName
  容器.getChildByName(name:String)用物件名稱取得此子物件指標(類別)


//畫圓物件
var tmpShape:Shape = new Shape();
tmpShape.graphics.lineStyle(2); //外框粗細
tmpShape.graphics.beginFill(0x0000FF); //填色顏色
tmpShape.graphics.drawCircle(0,0,50); //畫圓(x,y,半徑)
tmpShape.graphics.endFill(); //結束填色

//文字格式設定
var tmpTextFormat:TextFormat = new TextFormat();
tmpTextFormat.size = 50;
tmpTextFormat.color= 0xFF0000;
tmpTextFormat.bold = true;

//文字物件
var tmpText:TextField = new TextField();
tmpText.text = "abcd.....";
tmpText.setTextFormat(tmpTextFormat);

//容器
var tmpSprite:Sprite = new Sprite();
tmpSprite.addChild(tmpShape); //將圓物件放上容器
tmpSprite.addChild(tmpText); //將文字物件放上容器

this.addChild(tmpSprite); //最後要將容器放上舞台上才能看的到

滑鼠和鍵盤事件 (事件監聽)
兩種方法
1.addEventListener()
2.removeEventListner()

var sp:Sprite = new Sprite();
sp.graphics.beginFill(0x123456);
sp.graphics.drawCircle(20,20,150);
sp.graphics.endFill();
this.addChild(sp);
//註冊事件
sp.addEventListener(MouseEvent.MOUSE_DOWN,onSpMouseDown);
sp.addEventListener(MouseEvent.MOUSE_MOVE,onSpMouseMove);
sp.addEventListener(MouseEvent.MOUSE_UP,onSpMouseUp);
sp.addEventListener(MouseEvent.MOUSE_OVER,onSpMouseOver);
sp.addEventListener(MouseEvent.MOUSE_OUT,onSpMouseOut);
sp.addEventListener(MouseEvent.CLICK,onSpClick);
sp.addEventListener(MouseEvent.DOUBLE_CLICK,onSpDoubleClick);
sp.addEventListener(MouseEvent.ROLL_OVER,onSpRollOver);
sp.addEventListener(MouseEvent.ROLL_OUT,onSpRollOut);


//觸發的函式
function onSpMouseDown(e:MouseEvent):void{}
function onSpMouseMove(e:MouseEvent):void{}
function onSpMouseUp(e:MouseEvent):void{}
function onSpMouseOver(e:MouseEvent):void{}
function onSpMouseOut(e:MouseEvent):void{}
function onSpClick(e:MouseEvent):void{}
function onSpDoubleClick(e:MouseEvent):void{}
function onSpRollOver(e:MouseEvent):void{}
function onSpRollOut(e:MouseEvent):void{}

套件和類別(Package & Class)
把相關類別包裝在一起的方式,每個類別都屬於某一個套件
Class的要點:
1.將類別分類,並建立資料夾

沒有留言:

張貼留言