<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. java語言

    java“類的分包處理”詳細教程

    時間:2025-05-31 03:30:53 java語言 我要投稿
    • 相關推薦

    java“類的分包處理”詳細教程

      ActionScript 3.0 自寫類整理筆記(一)——類的分包處理

      分包情況:

      base包:基礎包,用于存放初級應用類

      bat包:應用包,用于存放高級應用類

      com包:系統化包,用于存放系統化的高級應用模塊類

      exe包:框架包,用于存放框架方面的類

      item包:項目包,用于項目上靠經驗積累下的類

      module包:組件包,用于存放組件的類

      這段時間,我個人的情緒非常低落,為了擺脫這段時間的消極狀態

      因此開始整理在做項目中,碰到的種種問題,來整理出一套可用性高的類庫

      希望自己會堅持下去!

      ActionScript 3.0 自寫類整理筆記(二)——Dot類

      index.base.geom.Dot類講解

      基本功能:記錄xy兩點

      構造函數

      public function Dot(x_:Number = 0,y_:Number = 0,_isListen:Boolean = false)

      前兩個參數表示Dot的初始位置,第三個參數表示是否是一個功能性強的點

      如果為false,當xy發生改變的時候,就不會發布事件,為true則會發布事件、

      bind 綁定顯示對象方法

      public function bind(_dis:DisplayObject,isInTime:Boolean = false):void

      當Dot綁定到DisplayObject上之后,Dot的xy屬性會隨著_dis改變而改變

      第一個參數為綁定的對象,第二個參數表示是否即時綁定

      如果為false,Dot的xy屬性不會隨著_dis的改變而即時改變,但在獲取Dot的xy屬性,或者調用Dot的方法時,將會立即改變并且以_dis的xy屬性為基準

      如果為true,Dot的xy屬性會隨著_dis的改變而立即改變,如果isListen為true,還會即時發布xy改變的事件,那么等于可以偵聽顯示對象的xy屬性,并且在改變后做出即時的反應

      updata 刷新方法

      public function updata():void

      更新顯示對象與Dot的xy屬性

      from 返回兩點之間距離

      public function from(_dot:Dot,isQuadrant:Boolean = false):Number

      第一個參數表示,結束點,第二個參數表示,是否為真實距離

      如果為false,返回的兩點距離絕對是正數,指的是兩點之間的絕對距離

      如果為true,則返回相對坐標,那么是有可能的為負的!

      angle 返回兩點所形成的夾角

      public function angle(_dot:Dot,isRadian:Boolean = false):Number

      第一個參數表示,另外一個點,第二個參數表示,是否為弧度值

      返回的角度是相對順時間的真實角度值,具體的數值變化可以從上面的例子看出

      quadrant 返回相對點所在的象限

      public function quadrant(_dot:Dot,isMaster:Boolean = true):int

      第一個參數表示另外一個點,第二個參數表示是否以該點為標準,具體請看示例

      返回0,表示兩點在同一條橫著或者豎著的直線上

      返回1,表示在第一象限,返回2表示第二象限………… 最高是第四象限。。

      不知道象限是什么意思的,請看這 點擊跳轉"象限"的百度百科頁面

      clear 方法

      public function clear():void

      清空顯示對象

      length 屬性(只讀)

      public function get length():Number

      獲取該點距0,0點的距離

      x 屬性

      public function set x(num:Number):void

      public function get x():Number

      設置x屬性,如果isListen為true,則會發布x改變的事件

      y 屬性

      public function set y(num:Number):void

      public function get y():Number

      設置y屬性,如果isListen為true,則會發布y改變的事件

      isListener 屬性

      public var isListen:Boolean

      指定設置isListen的值,是否為可偵聽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數據

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

      }

      //設置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));

      }

      //設置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);

      }

      }

      }

    【java“類的分包處理”詳細教程】相關文章:

    linux配置java環境變量詳細步驟教程08-13

    關于Java類的定義以及執行順序學習教程10-17

    java教程之Java編程基礎09-12

    Photoshop濾鏡詳細教程08-24

    java selenium基本教程09-27

    Java程序規范教程09-03

    Java面向過程教程10-05

    Java的特點學習教程08-27

    Photoshop調色詳細教程05-17

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人