Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-01-2012, 11:33   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 42
removeChild (Pfeile löschen)

Hallo liebe Flashforum Community.

Ich schreibe im Moment eine Android App mit Adobe Air 3.1. Mein Problem besteht jetzt darin, dass ich den Nutzer ermöglichen möchte Pfeile zu zeichnen. Das war auch keine Problem, nur die Pfeile wieder zu löschen hat sich als Problem dargestellt, da ich die Pfeilspitze, die mit addChild hinzugefügt wurde nicht wieder entfernen kann.

Hier ist der Code vielleicht hat jemand von euch eine Idee.

Code:
//Linien Zeichnen
var x1:Number = NaN;
var y1:Number = NaN;
var lines:Array = new Array  ;
zeichnen = 2;
if (zeichnen == 2)
{
	mc_box_pfeil.addEventListener(MouseEvent.CLICK,setStart);
}
else
{

}
function setStart(e:MouseEvent):void
{
	lines.push(new Sprite);
	if (mouseX < 900 && mouseY > 115)
	{
		spielfeld_mc.linie_mc.addChild(lines[lines.length-1]);
		spielfeld_mc.linie_mc.addChild(spitze);
		x1 = mouseX;
		y1 = mouseY;
		mc_box_pfeil.removeEventListener(MouseEvent.CLICK,setStart);
		mc_box_pfeil.addEventListener(MouseEvent.MOUSE_MOVE,drawLine);
		mc_box_pfeil.addEventListener(MouseEvent.CLICK,setEnd);
	}
	else
	{

	}
}
function drawLine(e:MouseEvent):void
{
	x2 = mouseX;
	y2 = mouseY ;
        spitze = new pfeilspitze();
	spitze.x = x2;
	spitze.y = y2 -128;
	m = Math.atan((y2 - y1) / (x2 - x1)) * 180 / Math.PI;
	if (x1 > x2)
	{
		m = m - 180;
	}
	trace(spitze);
	trace(m);
	spitze.rotation = m;
	lines[lines.length - 1].graphics.clear();
	lines[lines.length - 1].graphics.lineStyle(2,pfeilColor);
	lines[lines.length - 1].graphics.moveTo(x1,y1 -128);
	lines[lines.length - 1].graphics.lineTo(mouseX,mouseY -128);

}

function setEnd(e:MouseEvent):void
{
	mc_box_pfeil.addEventListener(MouseEvent.CLICK,setStart);
	mc_box_pfeil.removeEventListener(MouseEvent.MOUSE_MOVE,drawLine);
	mc_box_pfeil.removeEventListener(MouseEvent.CLICK,setEnd);
}
var linie_mc:MovieClip;
//Linien Löschen
mc_box_pfeil.mc_linien_loeschen.addEventListener(MouseEvent.CLICK, deleteLine);
mc_box_pfeil.mc_linien_loeschen.buttonMode = true;

function deleteLine(e:MouseEvent):void
{
	spielfeld_mc.linie_mc.removeChild(spitze);
	spielfeld_mc.linie_mc.removeChild(lines[lines.length - 1]);
}
Ich hoffe ihr könnt mir helfen, vielen Dank auf jeden Fall schon einmal von mir.
mikescho ist offline   Mit Zitat antworten
Alt 04-01-2012, 11:54   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Wo deklarierst Du denn spitze?
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 04-01-2012, 13:13   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 42
in der function drawLine mit
Code:
spitze = new pfeilspitze();
Ich hab mir auch überlegt, das außerhalb der Funktion zu deklarieren (dann hat klappt das auch mit removeChild), aber dann gibt es ja nur eine spitze und ich brauche für jeden Pfeil eine einzelne.

Es ist meine erste AS3 App und ich wünsche mir irgendwie es wäre so einfach wie in AS2. Aber so ist das wenn man seine Apps unbedingt auf AS3 portieren möchte.

Geändert von mikescho (04-01-2012 um 13:24 Uhr)
mikescho ist offline   Mit Zitat antworten
Alt 04-01-2012, 13:47   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von mikescho Beitrag anzeigen
in der function drawLine mit
Code:
spitze = new pfeilspitze();
Hier wird spitze nicht deklariert, sondern nur mit einem Wert belegt! Eine Deklaration sähe so aus:
ActionScript:
  1. var spitze:Sprite;
Wenn Diese in einer Funktion steht ist auch die Variable auch nur in deser Funktion gültig. Steht sie außerhalb kannst Du aus allen Funktionen darauf zugreifen.

Zitat:
Zitat von mikescho Beitrag anzeigen
Ich hab mir auch überlegt, das außerhalb der Funktion zu deklarieren (dann hat klappt das auch mit removeChild), aber dann gibt es ja nur eine spitze und ich brauche für jeden Pfeil eine einzelne.
Dann leg die spitze doch einfach in das Sprite, in das Du auch die Linie zeichnest. Wenn Du dieses Sprite dann entfernst, ist auch die spitze weg...

Zitat:
Zitat von mikescho Beitrag anzeigen
Es ist meine erste AS3 App und ich wünsche mir irgendwie es wäre so einfach wie in AS2. Aber so ist das wenn man seine Apps unbedingt auf AS3 portieren möchte.
Das mit den Variablengültigkeitsbereichen war aber auch in AS2 nicht anders?! In AS3 ist man nur gezwungen Variablen auch zu deklarieren, weshalb es mich wundert, dass Du keine Fehlermeldung bekommst (Das liegt wahrscheinlich daran, dass Dein Script in einem MovieClip liegt und dieser dynamic ist).


P.S.: Aus Lesbakeitsgründen sollte man übrigens in AS(3) Klassen- und Symbolnamen immer mit einem Großbuchstaben beginnen!
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (04-01-2012 um 13:58 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 04-01-2012, 14:47   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 42
Danke.

Das ich nicht gleich drauf gekommen bin die in einen Sprite zu packen . Naja jetzt klappt es jedenfalls.

Nochmals vielen Dank!
mikescho 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Pfeile zeichne mikescho ActionScript 2 11 31-01-2011 13:17
MC 'löschen' ... removeChild(); Lain ActionScript 3 6 09-07-2009 16:06
Pfeile animieren Max Zusatzprodukte 2 29-09-2007 21:38
Dynamische Pfeile? Samuel ActionScript 2 13 05-01-2007 11:52
Pfeile zeichnen? r&c Flash MX 2 30-04-2005 18:16


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele