Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-04-2005, 12:34   #1 (permalink)
stb
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 385
Pointer[stuff]

Auf dem Weg der schönen Dinge ist ein kleines Werkzeug entstanden,
das ich euch nicht vorenthalten möchte.

Manchmal hat man unsichtbare Elemente, dessen Position irgendwie nicht hinhaut
und man wünscht sich einen Zeiger der zeigt wo das Teil oder eine virtuelle Position denn nun eigentlich ist.

Pointer zeichnet ein Fadenkreutz mit Linie und Text

So geht's
ActionScript:
  1. import Pointer;
  2. // zeichnet einen Punkt auf pos 100,100 mit dem text "mein Punkt"
  3. // die pos. angaben werden automatisch angehängt
  4. var p:Pointer = new Pointer(100, 100, "mein Punkt");
  5.  
  6. // _x um 50px verschieben
  7. p.move_x(50);
  8.  
  9. // _x um 10 Prozent von 100px verschieben
  10. p.move_x(100, 100, 10);
  11.  
  12. // _x um 10 Promille von 100px verschieben
  13. p.move_x(100, 1000, 10);
  14.  
  15. // noch'n Punkt
  16. // wenn zwei auf der selben Pos. liegen, wird die Linie verlängert
  17. var p2:Pointer = new Pointer(161, 100, "mein Punkt2");
  18.  
  19. // den ersten Punkt löschen
  20. p.clear();
  21.  
  22. // alle Punkte löschen
  23. Pointer.clearAll();

Und hier die Pointer Klasse:
ActionScript:
  1. class Pointer{
  2.    
  3.     private static var _points_:Array = new Array();
  4.     private var point:MovieClip;
  5.     private var info:String;
  6.    
  7.     // constuctor -> create the Point
  8.     function Pointer(x:Number, y:Number, txt:String){
  9.         var fx:Number = 50;
  10.         var th:Number = 20;
  11.         info = txt;
  12.         var i;
  13.         // enlarge the line
  14.         for (i = 0; i < _points_.length; i++){
  15.             if(_points_[i]._x == x && _points_[i]._y == y) fx += th;
  16.         }
  17.         // create point
  18.         var d:Number = _root.getNextHighestDepth();
  19.         var mc:MovieClip = _root.createEmptyMovieClip("__point__" + d, d);
  20.         point = mc;
  21.         mc._x = x;
  22.         mc._y = y;
  23.         // create line
  24.         mc.lineStyle(0,0xffffff,100);
  25.         mc.moveTo(-5, -5);
  26.         mc.lineTo(fx, fx);
  27.         mc.lineStyle(0, 0x000000, 100);
  28.         mc.moveTo(-4, -5);
  29.         mc.lineTo(fx + 1, fx);
  30.         // create cross
  31.         var mcc:MovieClip = mc.createEmptyMovieClip("cross", 0);
  32.         mcc.lineStyle(0,0,100);
  33.         mcc.moveTo(-5, 0);
  34.         mcc.lineTo(6, 0);
  35.         mcc.lineStyle(0,0xffffff,100);
  36.         mcc.moveTo(-5, 1);
  37.         mcc.lineTo(6, 1);
  38.         mcc._rotation = -45;
  39.         // create text
  40.         txt += " _x:" + x + " _y:" + y
  41.         mc.createTextField("tf1", 1, fx, fx - (th / 2), 250, th);
  42.         mc.tf1.textColor = 0xffffff;
  43.         mc.tf1.autoSize = "left";
  44.         mc.tf1.text = txt;
  45.         mc.createTextField("tf2", 2, fx + 1,fx + 1 - (th / 2), 250, th);
  46.         mc.tf2.textColor = 0x000000;
  47.         mc.tf2.autoSize = "left";
  48.         mc.tf2.text = txt;
  49.         // register point
  50.         _points_.push(mc);
  51.     }
  52.     // remove all points
  53.     public static function clearAll(Void):Void{
  54.         var i:Number;
  55.         for (i = 0; i < _points_.length; i++) _points_[i].removeMovieClip();
  56.     }
  57.     // remove single point
  58.     public function clear(Void):Void{
  59.         point.removeMovieClip();
  60.     }
  61.     // move point._x "normal" or "by percent"
  62.     // normal: move_x(300);
  63.     // by percent-1-: move_x(300, 100, 10); // move 10 percent per 100 of 300 px
  64.     // by percent-2-: move_x(300, 255, 10); // move 10 percent per 255 of 300 px
  65.     // by percent-2-: move_x(300, 1000, 10); // move 10 percent per thousand of 300 px
  66.     public function move_x(move:Number, pMax:Number, p:Number):Void{
  67.         if(pMax == undefined || p == undefined){
  68.             point._x += move;
  69.         }else if(pMax != undefined && p != undefined){
  70.             point._x += move / pMax * p;
  71.         }
  72.         point.tf1.text = point.tf2.text = info + " _x:" + point._x + " _y:" + point._y;
  73.     }
  74.     // same as move_x but for y position
  75.     public function move_y(move:Number, pMax:Number, p:Number):void{
  76.         if(pMax == undefined || p == undefined){
  77.             point._y += move;
  78.         }else if(pMax != undefined && p != undefined){
  79.             point._y += move / pMax * p;
  80.         }
  81.         point.tf1.text = point.tf2.text = info + " _x:" + point._x + " _y:" + point._y;
  82.     }
  83. }
stb ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:15 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele