Antworten auf deine Fragen:
Neues Thema erstellen

AS3 ein Feld öfter verwenden

J

judentum

Guest

Hallo ich habe vor 2 Wochen angefangen Action Script 3 zu lernen
und ich möchte gern was probieren aber ich komm nicht weiter
deswegen such ich hier hilfe...
Ich möchte gern was probieren kenne mich aber nicht so gut damit aus also ic h möchte gern auf einem Feld am Schnittpunkt Kreise platzieren
Und es sind 2 verschiedene Kreise einmal ein schwarzer kreis und ein Weißer und ich möchte jetzt die Kreise auf die Schnittpunkte platzieren und das immer abwechselnd also Schwarz platziert ein kreis danach platziert weiß ein kreis
und dann setzt schwarz wieder einen Kreis und so weiter
Und ich möchte das es funktioniert das auf einem Schnittpunkt verschiedene Kreise gelegt werden können also im spiel verschieden Variationen von Spielabläufe also das ich Schwarz in einem Spiel auf einen Schnittpunkt setzten kann und in einem neuen Spiel Weiß auf den gleichen Schnittpunkt wie den vorherigen legen kann(Bild 2 und Bild 3)
Weiß nicht genau wie das geht.
Get das mit "true" und "false" und "if" und "else"?

Ich hoffe ihr versteht was ich meine und Danke schon im Voraus :)

Bilder:







Uploaded with
 
Zuletzt bearbeitet von einem Moderator:

A

ad86

Guest

AW: AS3 ein Feld öfter verwenden

Hi,

ERstesn kannst Du Dir zwei Arrays erstellen
Code:
var xArray:Array= new Array(x1,x2,x3,...);
var yArray:Array= new Array(y1,y2,y3,...);
var index:uint=0;
in dem Du Dir die SChnittpunkte speicherst. (vorher musst Du Dir Sie ausmessen.

Dein "kreuz" ist der MC, der die Linien beinhaltet, oder?
wenn ja:
Code:
kreuz_mc.addEventListener(MouseEvent.CLICK, addStoneHnadler);
function addStoneHandler(e:Event):void{
var stone:Stone= new Stone();
stone.gotoAndStop(index%2);
index++;
stage.addChild(stone);
}
Sollte eigentlich funktionieren, hab es aber nicht ausgetestet.
ZU Stone: Mach Dir einen neuen MovieClip und in diesem einen weißen Stein in Frame 1 und einen schwarzen in Frame 2. Bei der Erstellung solltest Du das Symbol "Stone" nennen, und weiter unten im Dialog "für Actionscript exportieren".

Ach ja leg Deinen Stein im Stone-MC mittig.
MFG ad86
 
A

ad86

Guest

AW: AS3 ein Feld öfter verwenden

Hi,
danke für die hilfe aber wie genau meinste das?

DEine Schnittpunkte (da wo sich mehrere Linien treffen) haben einen x und einen y-Wert. DEn musst Du dann "rausfinden". zum Beispiel so:
- Mach Dir einen DummyMC, der ein Kreis beinhaltet und 3 Pixel breit und hoch ist.
- Ordne den Kreis mittig an (gibt ein Ausrichten-Fenster, dort an Bühne ausrichten anklicken)
- Dieses MC ziehst DU auf die Hauptbühne und Schiebst ihn mittig immer an die genannten Schnittpunkte. Dann liest Du im EIgnschaften-Fenster x und y ab, und notierst Sie Dir, bis Du alle Schnittpunkte, wo Steine liegen sollen / dürfen, durch hast.
In dem xArray schreibst DU dann nacheinander die x-Werte, in dem anderen die y-Werte hinein.

Noch etwas unklar?:)

MFG ad86
 
J

judentum

Guest

AW: AS3 ein Feld öfter verwenden

ja danke ha alles verstanden bis auf letzte wo genau (und wie) soll ich die werte eingeben?
 
A

ad86

Guest

AW: AS3 ein Feld öfter verwenden

Hi,

also in DEinem Script solltest Du ja zwei Arrays haben (oben geschrieben)
in dem xArray schreibst Du nacheinander die x-Werte hinein (durch Komma getrennt), und dasselbe für das yArray. DEnke dran, dass Kommata in Dezimalzahlen als eine Punkte geschrieben werden ( Also 20,5 -> 20.5)

Und in der folgenden Funktion schreibst Du das (Das rote hatte ich beim letzten Mal vergessen):
Code:
function addStoneHandler(e:Event):void{
[COLOR="red"]if (index<xArray.length){[/COLOR]
var stone:Stone= new Stone();
[COLOR="red"]stone.x=xArray[index];
stone.y=yArray[index];[/COLOR]
stone.gotoAndStop(index%2);
index++;
stage.addChild(stone);
[COLOR="red"]}[/COLOR]
}

Die Bedingung sollte Dir klar sein, oder?
Nicht das DU mehr Steine auf die Bühne wirfst, als Du Positionen für Sie hast.

Mfg ad86
 
J

judentum

Guest

AW: AS3 ein Feld öfter verwenden

ja aber wo genau hinter new Array(x 220.20, x...)

so?
 
A

ad86

Guest

AW: AS3 ein Feld öfter verwenden

Hi,

Du bist kompletter Anfänger, oder? Noch nie FLash, noch nie etwas programmiert? Naja jeder fängt einmal an.
Also Du hast jetzt z.b. folgende Werte für x 100, 150, 198.5, 250.

Also schreibst Du in DEinem xArray:

Code:
var xArray:Array = new Array(100, 150, 198.5, 250);

Jetzt verständlich?


MFG ad86
 
J

judentum

Guest

AW: AS3 ein Feld öfter verwenden

ja danke aber jetzt wenn ich es testen will werden zwei fehler gemeldet
 
A

ad86

Guest

AW: AS3 ein Feld öfter verwenden

Hi,

ich motze jetzt rum: motz:

In einem früheren Post habe ich geschrieben, dass Du deinen Stein in einem MC (MovieClip) umwandeln sollst, stimmts?
Ich hab auch geschrieben im Dialog steht unten etwas von "Export für Actionscript". Die Checkbox anklicken und dann als Klasse "Stone" eingeben.

Im Nachhinein kannst Du auf Dein MC in der Bibliothek mit rechts klicken, Eigenschaften wählen und unten (oder eher mehr mittig) das obere machen.



Uploaded with

MFG ad86
 
J

judentum

Guest

AW: AS3 ein Feld öfter verwenden

ich weiß ich nerve und du wirst mich dafür hassen aber
könntest du dir das bitte mal anschauen
 
A

ad86

Guest

AW: AS3 ein Feld öfter verwenden

Hi,

1. Du solltest niemals einen Namen fuer mehrere Elemente nutzen. (Bei Dir gibt es zig "kreuz_mc")
2. Loesung fuer Dein Problem: aendere kreuz_mc.addEventListener in stage.addEventListener.

Dann werden Deine Stones auf die Buehne gelegt. Der zweite ist aber an der falschen Stelle.

MFg ad86
 
J

judentum

Guest

AW: AS3 ein Feld öfter verwenden

irgendwie kann ich jetzt den ersten stein legen und den zweiten nicht und die steine gehen nicht dahin wo ich es gern haben möchte
 
A

ad86

Guest

AW: AS3 ein Feld öfter verwenden

Hi,

sorry aber aktuell kann ich die Datei nicht downloaden (Die Seite meckert immer herum wegen ProxyServer, und so).
Also mache von deinem Code bzw. wie Deine Stones gesetzt sind ein Bild, oder such Dir einen anderen Upload-Seite.

Aber lass mich raten, Du willst dass die Stones an dem Punkt sind, an dem Du mit der Maus klickst, oder?

Wenn ja ich werde mich später nochmal deswegen melden.

MFG ad86


PS. Vorhin war ich in der Uni, und deswegen konnte ich die Datei downloaden.
 
A

ad86

Guest

AW: AS3 ein Feld öfter verwenden

Hi,

ich habs nicht getestet, sollte aber funktionieren

Code:
var xArray:Array= new Array(5,25,75);//Änderung: Alle xWerte aber keine doppelt eintragen
var yArray:Array= new Array(5,50,100);//Änderung: Alle yWerte, aber keine doppelten eintargen
var between:int=5;//Um wieviele Pixel darf sich der Mausklick vom Schnittpunt entfernen
var index:uint=0;

stage.addEventListener(MouseEvent.CLICK, addStoneHnadler);

function addStoneHandler(e:MouseEvent):void{
	for (var i:uint=0;i<xArray.length;i++){
		for (var j:uint=0;j<yArray.length;j++){
			if( ((e.stageX>=xArray[i]-between)&&(e.stageX<=xArray[i]+between))&&((e.stageY>=yArray[j]-between)&&(e.stageY<=yArray[j]+between))){
				var stone:Stone= new Stone();
				stone.x=xArray[i];
				stone.y=yArray[j];
				stone.gotoAndStop(index%2);
				stage.addChild(stone);
				index++;
				xArray.splice(i,1);//loescht das Element aus dem Array, es soll ja keine zwei Steine auf einen geben
				yArray.splice(j,1);//loescht das Element aus dem Array, es soll ja keine zwei Steine auf einen geben
			}
		}
	}
}

Solltest Du vorhaben, dass man die Steine später bewegen kann, wirst Du noch ein paar Änderungen machen müssen. Aber nur wenn.

MFG ad86

P.S.
Wenn Du Fragen hast zu einzelnen Elementen, kannst Du auch die Hilfe in Flash erstmal nutzen. Ich werde nicht jede Zeile erklären.
 
Zuletzt bearbeitet von einem Moderator:
J

judentum

Guest

AW: AS3 ein Feld öfter verwenden

Es sind zwei Fehler aufgetreten
ich hoffe es ist das letzte mal das ich dir die zeit raube...
 
A

ad86

Guest

AW: AS3 ein Feld öfter verwenden

Hi,

1. Was denn für Fehler?

2. Antwort "slice" -> in "splice" ändern:

Code:
xArray.s[COLOR="Red"]p[/COLOR]lice(i,1);
yArray.s[COLOR="red"]p[/COLOR]lice(j,1);

MFG ad86
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.633
Beiträge
1.538.446
Mitglieder
67.557
Neuestes Mitglied
scheflo
Oben