Flashhilfe.de - Flash Community

Auswahlrechteck aufziehen mit AS3 [Flash 10]

 


AntwortenRegistrieren Seite1  

Sleepingbeast#1
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

09.09.2009, 15:36

Hallo zusammen,

ich versuche ein Auswahlrechteck, wie man es etwa aus Grafikprogrammen oder auch aus Windows kennt, mit AS3 zu erzeugen. Für AS2 hatte ich mal eine Möglichkeit entwickelt aber ich tu mich ein bisschen schwer mit der Umsetzung in AS3.
Hier zunächst einmal der alte AS2-Code:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var startX:Number;
var startY:Number;
var Mouse_listener:Object = new Object();

Mouse_listener.onMouseDown = function() {
   startX = _root._xmouse;
   startY = _root._ymouse;
   auswahlIntervall = setInterval(zeichneRechteck, 10);
};

Mouse_listener.onMouseUp = function() {
   clearInterval(auswahlIntervall);
};

function zeichneRechteck() {
   var rechteck:MovieClip = _root.createEmptyMovieClip("auswahl", 1000);
   rechteck.lineStyle(1,0x000000,100);
   rechteck.beginFill(0xff0000,30);
   rechteck.lineTo(_root._xmouse - startX,0);
   rechteck.lineTo(_root._xmouse - startX,_root._ymouse - startY);
   rechteck.lineTo(0,_root._ymouse - startY);
   rechteck.lineTo(0,0);
   rechteck.endFill();
   rechteck._x = startX;
   rechteck._y = startY;
}

Mouse.addListener(Mouse_listener);

Leider kann ich das nicht einfach in AS3 portieren. Vielleicht fällt einem von euch eine tolle Lösung ein, zumal es ja in AS3 drawRect() gibt, womit man direkt ein Rechteck zeichnen kann.

Danke schonmal im Voraus.


Patrick
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
Geändert von Sleepingbeast am 09.09.09 um 16:00 Uhr
Sleepingbeast#2
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

Themenautor/in

09.09.2009, 15:59

...und schon hab ich eine Lösung gefunden ;)
Falls es jemanden interessiert, hier das Script dazu:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var auswahlrahmen:Sprite = new Sprite();
var startX:Number;
var startY:Number;

stage.addEventListener(MouseEvent.MOUSE_DOWN, setzeStartwerte);
stage.addEventListener(MouseEvent.MOUSE_UP, erzeugeAuswahlrechteck);

function zeichneAuswahlrahmen(e:MouseEvent):void {
   auswahlrahmen.graphics.clear();
   auswahlrahmen.graphics.lineStyle(1);
   auswahlrahmen.graphics.drawRect(startX, startY, mouseX - startX, mouseY - startY);
   addChild(auswahlrahmen);
}

function erzeugeAuswahlrechteck(e:MouseEvent):void {
   auswahlrahmen.graphics.clear();
   stage.removeEventListener(MouseEvent.MOUSE_MOVE, zeichneAuswahlrahmen);
   var rechteck:Sprite = new Sprite();
   rechteck.graphics.beginFill(0xff0000, 0.5);
   rechteck.graphics.drawRect(startX, startY, mouseX - startX, mouseY - startY);
   rechteck.graphics.endFill();
   addChild(rechteck);
}

function setzeStartwerte(e:MouseEvent):void {
   startX = mouseX;
   startY = mouseY;
   stage.addEventListener(MouseEvent.MOUSE_MOVE, zeichneAuswahlrahmen);
}
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'


Angehängte Dateien:
Adobe Flash Quelldatei auswahlrechteck.fla22.50 KB
Adobe Flash Animationen auswahlrechteck.swf0.80 KB
Geändert von Sleepingbeast am 09.09.09 um 16:00 Uhr
dsplz#3
Benutzerbild von dsplz
Beiträge: 56
Registriert: Jul 2006

09.09.2009, 18:04

cool, danke
badskill#4
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

09.09.2009, 20:09

Das
ActionScript:
1addChild(auswahlrahmen);
würde ich aus der Funktion rausnehmen. Das Sprite muss nicht immer wieder neu der DisplayList hinzugefügt werden.
Sleepingbeast#5
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

Themenautor/in

10.09.2009, 07:38

Hallo badskill,

wenn ich besagte Zeile rausnehme, sieht man das eigentliche Aufziehen des Rahmens nicht mehr. Aber du meinst sicher, dass ich diese Zeile lediglich aus der Funktion, nicht jedoch aus dem ganzen Script rausnehmen soll, oder? Dann geb ich dir natürlich vollkommen recht!


Patrick
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2022 Sebastian Wichmann - Flashhilfe.de