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

AS3自寫類整理筆記 Dot類

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

舉例:

上面的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兩點(diǎ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; 
      } 
    } 

    //計(jì)算該點(diǎn)與另外一點(diǎn)的距離 
    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; 
    } 

    //計(jì)算該點(diǎn)與另外一點(diǎn)所形成的線段與水平線的夾角,按順時(shí)間計(jì)算 
    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)前點(diǎn)處在另外一點(diǎn)的哪個(gè)象限中 或 返回另外一點(diǎn)處在當(dāng)前點(diǎn)的哪個(gè)象限中 
    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; 
    } 

    //返回該點(diǎn)距0點(diǎn)的距離 
    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)文章

  • AS3自寫類整理筆記 ClassLoader類

    AS3自寫類整理筆記 ClassLoader類

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

    Actionscript 3.0 鼠標(biāo)事件

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

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

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

    ActionScript 3.0 編程體驗(yàn)

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

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

    一個(gè)簡單的基于XMLSocket的封裝類
    2009-02-02
  • Google Analytics在Flash cs3下的使用教程分析

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

    因?yàn)楣ぷ鞯脑?,最近使用到Google Analytics組件,這個(gè)組件在網(wǎng)上的資料很多,但是大部分都是詳談組件的優(yōu)勢的,具體的使用沒有很詳細(xì)的說明
    2009-02-02
  • AS3自寫類整理筆記:ByteLoader類

    AS3自寫類整理筆記:ByteLoader類

    該類的主要功能是把swf,jpg,png,gif等文件以字節(jié)的形式加載進(jìn)來 以便于使用Loader.loadBytes方法,重復(fù)加載使用素材 如果圖片格式為jpg,并且是漸進(jìn)式格式j(luò)peg,那么該類還可以幫助你邊加載邊顯示
    2008-06-06
  • AS3中的反射(速記) 分析

    AS3中的反射(速記) 分析

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

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

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

    AS3自寫類整理筆記 Dot類

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

最新評論

康定县| 榆社县| 洪洞县| 东乡县| 中山市| 樟树市| 镇江市| 鄂托克前旗| 精河县| 无锡市| 大宁县| 灵璧县| 崇信县| 井陉县| 白水县| 涞源县| 镇江市| 沾益县| 天柱县| 广安市| 崇明县| 大名县| 兴城市| 台东市| 太和县| 万源市| 晋中市| 牡丹江市| 全南县| 云浮市| 历史| 白沙| 上虞市| 永德县| 山西省| 珲春市| 美姑县| 吉隆县| 峨山| 兴安盟| 寻甸|