最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AS3自寫類整理筆記 Dot類

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

舉例:

上面的flash展示源代碼:
復制代碼 代碼如下:

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坐標:" + po1.x + "," + po1.y; 
  te.appendText("\n物體2坐標:" + 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); 



下面是類的源代碼:

復制代碼 代碼如下:

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; 
    } 

    //返回當前點處在另外一點的哪個象限中 或 返回另外一點處在當前點的哪個象限中 
    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坐標 
    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坐標 
    public function get x():Number{ 
      updata(); 
      return _x; 
    } 

    //改變Y坐標 
    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坐標 
    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)文章

  • AS3自寫類整理筆記 ClassLoader類

    AS3自寫類整理筆記 ClassLoader類

    在用flash做項目的時候,把一些元件,通過設(shè)置鏈接類,然后使用這個類,通過getClass方法即可把這個素材拿下來
    2008-06-06
  • Actionscript 3.0 鼠標事件

    Actionscript 3.0 鼠標事件

    這本書是一本經(jīng)典的書籍,說實話一些小的AS3的項目是做了好幾個,基本的語法也都知道(其實有面向?qū)ο缶幊陶Z言的基礎(chǔ)后再入門一門新的語言還是很快的)?,F(xiàn)在找到了這邊經(jīng)典書籍完整版,就好好看看,順便寫一些總結(jié)。
    2009-02-02
  • AS3 navigateToURL導致ExternalInterface 執(zhí)行失敗問題

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

    AS3 navigateToURL導致ExternalInterface 執(zhí)行失敗問題
    2009-02-02
  • ActionScript 3.0 編程體驗

    ActionScript 3.0 編程體驗

    日前,Adobe公司發(fā)布了Flash的最新版本Flash Professional 9 ActionScript 3.0 Preview,這是Flash 9的預覽版,正式版本估計要到2007年才會推出,
    2008-03-03
  • ActionScript 3.0中用XMLSocket與服務器通訊程序(源碼)

    ActionScript 3.0中用XMLSocket與服務器通訊程序(源碼)

    一個簡單的基于XMLSocket的封裝類
    2009-02-02
  • 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方法,重復加載使用素材 如果圖片格式為jpg,并且是漸進式格式jpeg,那么該類還可以幫助你邊加載邊顯示
    2008-06-06
  • AS3中的反射(速記) 分析

    AS3中的反射(速記) 分析

    詳細了解AS3的反射,請google相關(guān)文章,這里只是速記一下
    2008-03-03
  • AS3打開新窗口不被屏蔽的代碼

    AS3打開新窗口不被屏蔽的代碼

    有時候flash打開的網(wǎng)址會出現(xiàn)被屏蔽的現(xiàn)象,如何能輕松的打開而不被屏蔽呢,下面是具體的代碼。
    2010-08-08
  • AS3自寫類整理筆記 Dot類

    AS3自寫類整理筆記 Dot類

    拖拽物體1和物體2,就可以看到效果了 index.base.geom.Dot類講解 基本功能:記錄xy兩點
    2008-06-06

最新評論

武陟县| 延边| 岳池县| 辛集市| 镇江市| 吉安县| 炎陵县| 长乐市| 青田县| 廊坊市| 囊谦县| 平南县| 土默特右旗| 时尚| 新竹市| 石泉县| 清丰县| 若羌县| 临沂市| 鄯善县| 广昌县| 民和| 来凤县| 疏勒县| 凉城县| 浮梁县| 台东市| 洞头县| 固镇县| 莒南县| 衡山县| 建始县| 西林县| 龙山县| 海南省| 东安县| 琼海市| 汝城县| 尼木县| 江津市| 滕州市|