欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

AS3自寫類整理筆記 Dot類第2/2頁

 更新時間:2008年06月04日 19:47:03   作者:  
拖拽物體1和物體2,就可以看到效果了 index.base.geom.Dot類講解 基本功能:記錄xy兩點

舉例:

上面的flash展示源代碼:
復(fù)制代碼 代碼如下:

import index.base.geom.Dot; 
import index.base.events.DotEvent; 

var po1:Dot = new Dot(0,0,true); 
var po2:Dot = new Dot(0,0,true); 
po1.bind(p1,true); 
po2.bind(p2,true); 

po1.addEventListener(DotEvent.DOT_CHANGE,dotChangeFun); 
po2.addEventListener(DotEvent.DOT_CHANGE,dotChangeFun); 

function dotChangeFun(e:DotEvent):void{ 
  te.text = "物體1坐標(biāo):" + po1.x + "," + po1.y; 
  te.appendText("\n物體2坐標(biāo):" + po2.x + "," + po2.y); 
  te.appendText("\n兩點之間距離:" + po1.from(po2)); 
  te.appendText("\n所形成的角度:" + po1.angle(po2)); 
  te.appendText("\n物體1所在象限:" + po1.quadrant(new Dot,false)); 
  te.appendText("\n物體2所在象限:" + po2.quadrant(new Dot,false)); 
  te.appendText("\n物體1對于物體2在象限:" + po2.quadrant(po1)); 


p1.addEventListener(MouseEvent.MOUSE_DOWN,p1MouseDownFun); 
p2.addEventListener(MouseEvent.MOUSE_DOWN,p2MouseDownFun); 

function p1MouseDownFun(e:MouseEvent):void{ 
  p1.startDrag(); 
  stage.addEventListener(MouseEvent.MOUSE_UP,p1MouseUpFun); 


function p1MouseUpFun(e:MouseEvent):void{ 
  p1.stopDrag(); 
  stage.removeEventListener(MouseEvent.MOUSE_UP,p1MouseUpFun); 


function p2MouseDownFun(e:MouseEvent):void{ 
  p2.startDrag(); 
  stage.addEventListener(MouseEvent.MOUSE_UP,p2MouseUpFun); 


function p2MouseUpFun(e:MouseEvent):void{ 
  p2.stopDrag(); 
  stage.removeEventListener(MouseEvent.MOUSE_UP,p2MouseUpFun); 



下面是類的源代碼:

復(fù)制代碼 代碼如下:

package index.base.geom{ 

  import flash.events.EventDispatcher; 
  import flash.display.DisplayObject; 

  import index.base.events.DotEvent; 

  public class Dot extends EventDispatcher{ 

    private var _x:Number; 
    private var _y:Number; 
    private var dis:DisplayObject; 

    public var isListen:Boolean; 

    public function Dot(x_:Number = 0,y_:Number = 0,_isListen:Boolean = false){ 
      _x = x_; 
      _y = y_; 
      isListen = _isListen; 
    } 

    //綁定DisplayObject 
    public function bind(_dis:DisplayObject,isInTime:Boolean = false):void{ 
      dis = _dis; 
      updata(); 
      if(isInTime) dis.addEventListener("enterFrame",enterFrameFun); 
    } 

    //幀頻繁事件 
    private function enterFrameFun(e:Object):void{ 
      if(_x != dis.x) x = dis.x; 
      if(_y != dis.y) y = dis.y; 
    } 

    //更新xy數(shù)據(jù) 
    public function updata():void{ 
      if(dis != null){ 
        _x = dis.x; 
        _y = dis.y; 
      } 
    } 

    //計算該點與另外一點的距離 
    public function from(_dot:Dot,isQuadrant:Boolean = false):Number{ 
      updata(); 
      var num:Number = Math.sqrt(Math.pow(_dot.x - _x,2) + Math.pow(_dot.y - _y,2)); 
      if(!isQuadrant) num = Math.abs(num); 
      return num; 
    } 

    //計算該點與另外一點所形成的線段與水平線的夾角,按順時間計算 
    public function angle(_dot:Dot,isRadian:Boolean = false):Number{ 
      updata(); 
      var numx:Number = _dot.x - _x; 
      var numy:Number = _dot.y - _y; 
      var num:Number = Math.atan(numy/numx); 
      if(!isRadian) num = num * 180 / Math.PI; 
      return num; 
    } 

    //返回當(dāng)前點處在另外一點的哪個象限中 或 返回另外一點處在當(dāng)前點的哪個象限中 
    public function quadrant(_dot:Dot,isMaster:Boolean = true):int{ 
      updata(); 
      if(_x == _dot.x || _y == _dot.y){ 
        return 0; 
      } 

      var num:int; 
      var p1:Boolean = (_x - _dot.x) > 0; 
      var p2:Boolean = (_y - _dot.y) > 0; 
      num = isMaster ? (p1 ? (p2 ? 2 : 3) : (p2 ? 1 : 4)) : (p1 ? (p2 ? 4 : 1) : (p2 ? 3 : 2)); 

      return num; 
    } 

    //返回該點距0點的距離 
    public function get length():Number{ 
      updata(); 
      var num:Number = Math.sqrt(Math.pow(_x,2) + Math.pow(_y,2)); 
      return num; 
    } 

    //清除顯示對象 
    public function clear():void{ 
      dis = null; 
    } 

    //改變X坐標(biāo) 
    public function set x(num:Number):void{ 
      _x = num; 
      if(dis != null) dis.x = num; 
      if(isListen) dispatchEvent(new DotEvent(DotEvent.DOT_CHANGE,true)); 
    } 

    //設(shè)置X坐標(biāo) 
    public function get x():Number{ 
      updata(); 
      return _x; 
    } 

    //改變Y坐標(biāo) 
    public function set y(num:Number):void{ 
      _y = num; 
      if(dis != null) dis.y = num; 
      if(isListen) dispatchEvent(new DotEvent(DotEvent.DOT_CHANGE,true)); 
    } 

    //設(shè)置Y坐標(biāo) 
    public function get y():Number{ 
      updata(); 
      return _y; 
    } 
  } 

事件類的代碼:

package index.base.events{

  import flash.events.Event;

  public class DotEvent extends Event{

    public static const DOT_CHANGE:String = "dotChange";

    public function DotEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false){
      super(type,bubbles,cancelable);
    }
  }
}

相關(guān)文章

  • Actionscript 3.0中Singleton實現(xiàn) 修正篇

    Actionscript 3.0中Singleton實現(xiàn) 修正篇

    說明:上一篇"一個簡單的Actionscript的單態(tài)模式類"的實現(xiàn)在Actionscript中報錯,具體原因會在這篇Blog中詳細說明。
    2009-02-02
  • ActionScript 3.0 編程體驗

    ActionScript 3.0 編程體驗

    日前,Adobe公司發(fā)布了Flash的最新版本Flash Professional 9 ActionScript 3.0 Preview,這是Flash 9的預(yù)覽版,正式版本估計要到2007年才會推出,
    2008-03-03
  • Google Analytics在Flash cs3下的使用教程分析

    Google Analytics在Flash cs3下的使用教程分析

    因為工作的原因,最近使用到Google Analytics組件,這個組件在網(wǎng)上的資料很多,但是大部分都是詳談組件的優(yōu)勢的,具體的使用沒有很詳細的說明
    2009-02-02
  • AS3自寫類整理筆記:ByteLoader類

    AS3自寫類整理筆記:ByteLoader類

    該類的主要功能是把swf,jpg,png,gif等文件以字節(jié)的形式加載進來 以便于使用Loader.loadBytes方法,重復(fù)加載使用素材 如果圖片格式為jpg,并且是漸進式格式j(luò)peg,那么該類還可以幫助你邊加載邊顯示
    2008-06-06
  • AS3 navigateToURL導(dǎo)致ExternalInterface 執(zhí)行失敗問題

    AS3 navigateToURL導(dǎo)致ExternalInterface 執(zhí)行失敗問題

    AS3 navigateToURL導(dǎo)致ExternalInterface 執(zhí)行失敗問題
    2009-02-02
  • Actionscript 3.0 鼠標(biāo)事件

    Actionscript 3.0 鼠標(biāo)事件

    這本書是一本經(jīng)典的書籍,說實話一些小的AS3的項目是做了好幾個,基本的語法也都知道(其實有面向?qū)ο缶幊陶Z言的基礎(chǔ)后再入門一門新的語言還是很快的)。現(xiàn)在找到了這邊經(jīng)典書籍完整版,就好好看看,順便寫一些總結(jié)。
    2009-02-02
  • 火山動態(tài)文本滾動條V5[AS3版]

    火山動態(tài)文本滾動條V5[AS3版]

    功能說明:本版滾動條除了繼續(xù)保持體積?。ㄐ∮?K),界面容易修改,資源占用率小的優(yōu)勢外,主要有以下幾點改進: 1,使用AS3編寫。 2,寬高動態(tài)指定。 3,增加滾動條背景點擊事件。 4,消除了鼠標(biāo)滾輪無法同時準(zhǔn)確控制多個文本框的重大BUG。
    2008-03-03
  • 編寫高效率的AS3代碼的小技巧

    編寫高效率的AS3代碼的小技巧

    最近我研究了一些AS3代碼優(yōu)化的文章,一般都是集中在研究loops 和 Number types上的,本文不在重復(fù)類似的測試
    2009-02-02
  • as3+xml+asp+access做的有獎問答

    as3+xml+asp+access做的有獎問答

    as3+xml+asp+access做的有獎問答實現(xiàn)代碼
    2009-02-02
  • as3 rollOver or mouseOver使用說明

    as3 rollOver or mouseOver使用說明

    rollOver與mouseOver同樣在鼠標(biāo)移到目標(biāo)上時觸發(fā)事件,細微區(qū)別在于,mouseOver的bubbles等于true,而rollOver的bubbles是false.
    2009-10-10

最新評論