Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-10-2004, 11:49   #1 (permalink)
Neuer User
 
Benutzerbild von Artis
 
Registriert seit: Oct 2004
Beiträge: 28
duplicateMovieClip / Instanzname

Hi
Ich hab dazu schon mal gesucht und auch etwas gefunden. Und das Problem ist auch sehr ähnlich, nur wird es für einen Anfang zu ungenau beschrieben was ich machen könnte.

Ich will einen Mapeditor mit 900 Feldern (30 x 30) erstellen.
Dazu würde ich mir einfach eine MC basteln und duplizieren.
Jetzt hab ich aber 2 Probleme:
1. Wie kann ich jedem neuen MC einen durchnummerierten Namen geben? Hab nur die Idee das es mit einer Schleife gehen muss, wobei ich eine Forschleife nehmen würde.

2. Da es ein Editor für Maps ist, will ich das jedes Feld anders aussehen kann. Das würde ich mit Bitmapzuweisungen machen. Für ebenen gibt es die this funktion. Gibt es sowas für Objekte auch, damit die Bildzuteilung auf den MC angewendet wird auf den ich geklickt habe? Weil der AS in der MC ja dem der OriginalMC entsprechen würde, und die muss ich dann dynamisch gestalten.

Ich hoffe es war verständlich^^" Und danke im vorraus : )
Artis ist offline   Mit Zitat antworten
Alt 22-10-2004, 11:57   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
So mal als Anstoß, wie so eine dynamische Geschichte aussehen kann... gehen wir davon aus, es gibt einen Mc namens "mc0" auf der Bühne:
ActionScript:
  1. var i = 20;
  2. while (i--) {
  3.     b0.duplicateMovieClip("b" + i, i, {_x:i * (b0._width + 3)});
  4.     this["b" + i].id = this["b" + i]._name.substr(1);
  5.     this["b" + i].onRelease = function() {
  6.         trace("Ich heiße: " + this._name + " und meine ID ist: " + this.id)
  7.     };
  8. }
Ungefähr klar?

[edit]
Und wenn du so eine Matrix-artige Anordnung der MCs brauchst, gibts hier was von Freund RustyCake dazu: Tut's die keiner braucht! *modulo*
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (22-10-2004 um 11:59 Uhr)
sonar ist offline   Mit Zitat antworten
Alt 22-10-2004, 13:59   #3 (permalink)
Neuer User
 
Benutzerbild von Artis
 
Registriert seit: Oct 2004
Beiträge: 28
Joa voll und ganz verstanden, danke^^

Wegen dem Link: Ich hab zwar daraus lesen können das es den Restwert errechnet oder so, aber den genauen Sinn dieses Tuts hab ich trotzdem noch nicht so ganz verstanden^^"
Artis ist offline   Mit Zitat antworten
Alt 22-10-2004, 14:48   #4 (permalink)
Neuer User
 
Benutzerbild von Artis
 
Registriert seit: Oct 2004
Beiträge: 28
hmmmm...

Ich hab das jetzt mal umgebaut, aber irgendwie will der das nicht ausführen. Normal ist das MC bläulich. Und wenn ich dem kein Bild zuteile müssten die duplicierten MCs die Farbe haben, aber die Bühne ist vollkommen weiß, und ne Nachricht kommt auch nicht....

Hier mein Code:
Code:
for (var y = 0; y<30; y++) {
	for (var x = 0; x<30; x++) {
		Feld_Temp.duplicateMovieClip("Feld"+(x+(y*30)), 100, {_x:(x*Feld_Temp._width), _y:i*Feld_Temp._width});
		this["Feld"+(x+(y*30))].ID = (x+(y*30));
		this["Feld"+(x+(y*30))].onRelease = function() {
			trace("Name: "+this._name+", ID: "+this.ID);
		};
	}
}
Artis ist offline   Mit Zitat antworten
Alt 22-10-2004, 14:51   #5 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Hast dir mal ausgeben lassen, was so alles an Objekten rumgeistert nach der Aktion? Also per STRG + L
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 22-10-2004, 14:55   #6 (permalink)
Neuer User
 
Benutzerbild von Artis
 
Registriert seit: Oct 2004
Beiträge: 28
Das einzige was da im Fenster steht ist das hier:
Stufe #0: Bild=1
Form:
Artis ist offline   Mit Zitat antworten
Alt 22-10-2004, 16:22   #7 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
PHP-Code:
abstand=1
for (var 0y<30y++) {
    for (var 
0x<30x++) {
        var 
mc=Feld_Temp.duplicateMovieClip("Feld"+(x+(y*30)), x+(y*30), {_x:x*(Feld_Temp._width+abstand), _y:y*(Feld_Temp._width+abstand)});
        
mc.ID = (x+(y*30));
        
mc.onRelease = function() {
            
trace("Name: "+this._name+", ID: "+this.ID);
        };
    }


tach@freund sonar
btw,

this["b" + i].id = this["b" + i]._name.substr(1);
==
this["b" + i].id = i;

grz
warrantmaster ist offline   Mit Zitat antworten
Alt 22-10-2004, 17:06   #8 (permalink)
Neuer User
 
Benutzerbild von Artis
 
Registriert seit: Oct 2004
Beiträge: 28
Funktioniert immer noch nicht. Und um ehrlich zu sein weiß ich nicht warum ihr da einen Abstand haben wollt..... ?
Immerhin fängt das erste MC bei 0 x 0 an und hört 29 x 29 auf. und das nächste dann 30 x 0 und dann 59 x 29....
egal. Wie gesagt, es funktioniert nicht. Und sehen was an meinem Code falsch ist tu ich auch nicht
Artis ist offline   Mit Zitat antworten
Alt 22-10-2004, 18:30   #9 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
Zitat:
Zitat von Artis
..... Wie gesagt, es funktioniert nicht. Und sehen was an meinem Code falsch ist tu ich auch nicht
blödsinn, ich poste nix, was ich nicht vorher getestet habe.


Zitat:
Und sehen was an meinem Code falsch ist tu ich auch nicht
aber ich sehe was:




PHP-Code:
Feld_Temp.duplicateMovieClip("Feld"+(x+(y*30)), 100, {_x:(x*Feld_Temp._width), _y:i*Feld_Temp._width}); 

du duplizierst immer in die gleiche ebene (100)


_y:i*Feld_Temp._width

das "i" ist voll gurke !


btw, der abstand ist just for fun, aber das wirst du sicher auch nicht gleich verstehen.
warrantmaster ist offline   Mit Zitat antworten
Alt 22-10-2004, 18:38   #10 (permalink)
Neuer User
 
Benutzerbild von Artis
 
Registriert seit: Oct 2004
Beiträge: 28
joa ok^^ Das mit dem i ist wirklich blödsinn würde einer Darstellung aber nicht im wege stehen. Und das mit der Ebene, warum ist das so schlimm? Soll ja in einer Ebene sein.

Edit:
So.... also der Code wird ausgeführt, und die IDs werden hochgezählt. Hab ich mit trace überprüft. Aber warum werden die nicht angezeigt? Hat das was mit der Ebene zu tun?

Geändert von Artis (22-10-2004 um 18:43 Uhr)
Artis ist offline   Mit Zitat antworten
Alt 23-10-2004, 17:10   #11 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
Zitat:
Zitat von Artis
joa ok^^ Das mit dem i ist wirklich blödsinn würde einer Darstellung aber nicht im wege stehen. Und das mit der Ebene, warum ist das so schlimm? Soll ja in einer Ebene sein.

Edit:
So.... also der Code wird ausgeführt, und die IDs werden hochgezählt. Hab ich mit trace überprüft. Aber warum werden die nicht angezeigt? Hat das was mit der Ebene zu tun?


ach artis...

_y:i*Feld_Temp._width

dein "i" gibt es nicht, so bleibt der wert halt immer gleich, d.h. menn die clips
erstellt werden, liegen sie immer auf der gleichen y-achse.
die dinger werden auch erstellt, allerdings durch den nächsten immer wieder
überschrieben ( wegen der 100).
warrantmaster ist offline   Mit Zitat antworten
Alt 25-10-2004, 07:58   #12 (permalink)
Neuer User
 
Benutzerbild von Artis
 
Registriert seit: Oct 2004
Beiträge: 28
joa, aber doch nur auf der Y-Achse, und nicht auf der X-Achse.
Und da i leer ist, also eigendlich 0, müssten die Felder rein theoretisch alle nebeneinander geschrieben werden. Aber das wäre mir eigendlich erstmal egal, wenn auch nur ein einziges angezeigt werden würde. Aber gerade das versteh ich nicht. Warum wird bei mir keins angezeigt? : (
Immerhin scheint es bei dir ja zu funktionieren wie du geschrieben hast.
Ich schau mir mal ein anderes mit duplicateMovieClip an. Da hat es mit einem Funktioniert
Artis 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 04:44 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele