Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-08-2004, 14:34   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2001
Beiträge: 35
Instanznamen dynamisch vergeben und ansprechen

Servus!

Ich würde gerne mehrere Textfelder nebenein anderplatzieren. Der Einfachheit halber habe ich das Textfeld in einen MC gepackt.
Um den Inhalt des Textfeldes, dass sich in jedem der dynamisch platzierten MCs befindet, muss ich jeden MC mit seinem Namen ansprechen könne.
Ich habe mir gedacht, das könnte folgendermasen funktionieren...

Code:
menu_punkte = new Array("Punkt_1", "Punkt_2", "Punkt_3", "Punkt_4")
for(x=0; x < menu_punkte.length; x++) {
	var mc_name = menu_punkte[x]+"feld";
	attachMovie("textfeld_mc",mc_name,x);
	mc_name._x = (x)*50;
	mc_name._y = 10;
	mc_name.textfeld_name.text = "beschriftung";
}
...was es aber nicht tut. Ich hab auch noch ein paar andere Methoden ausprobiert, aber keine funktioniert.
Kann mit bitte jemand sagen, wie die Namensgebung aussehen muss, bzw. wie ich die MCs korrekt anspreche?

Vielen Dank im vorraus.

Stefan
stefank86 ist offline   Mit Zitat antworten
Alt 26-08-2004, 14:42   #2 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Und so?
ActionScript:
  1. anzahl = 4;
  2. for(x=1; x < anzahl+1; x++) {
  3.     //var mc_name = menu_punkte[x]+"feld";
  4.     attachMovie("textfeld_mc","Punkt"+x,x);
  5.     this["Punkt"+x]._x = (x)*50;
  6.     this["Punkt"+x]._y = 10;
  7.     this["Punkt"+x].textfeld_name.text = "beschriftung";
  8. }

bye
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 26-08-2004, 14:48   #3 (permalink)
mentally ill
 
Registriert seit: Aug 2004
Beiträge: 172
hi,

hast du schon den Movie Clip mit ActionScript verknüpft?

(In der Bibiliothek Rechtsklick auf den MC und dann unter Eigenschaften "Veknüpfen mit ActionScript")
Ansonsten kannst du deine MC's nicht über ActionScript ansprechen...
menty ist offline   Mit Zitat antworten
Alt 26-08-2004, 15:02   #4 (permalink)
Neuer User
 
Registriert seit: Aug 2001
Beiträge: 35
Verknüpft ist der MC schon. Es liegt ausschließlich an den Namen. Mit statischen Namen hab ich selbstverständlich auch getestet und damit funktioniert es einwandfrei.
Und zu dem Codevorschlag: Punkt_1 - Punkt_4 sind nur Platzhalter, die später durch Begriffe ersetzt werden, die sich nicht in eine mathematische Reihe einordnen lassen.
stefank86 ist offline   Mit Zitat antworten
Alt 26-08-2004, 15:29   #5 (permalink)
mentally ill
 
Registriert seit: Aug 2004
Beiträge: 172
Code:
menu_punkte = new Array("Punkt_1", "Punkt_2", "Punkt_3", "Punkt_4")
var anzahl = menu_punkte.length;
for(x=1; x < anzahl+1; x++) { 
//var mc_name = menu_punkte[x]+"feld"; 
attachMovie("textfeld_mc",menu_punkte[x],x); 
this[menu_punkte[x]]._x = (x)*50; 
this[menu_punkte[x]]._y = 10; 
this[menu_punkte[x]].textfeld_name.text = "beschriftung"; 
}
vielleicht hilft das ja...

Geändert von menty (26-08-2004 um 15:31 Uhr)
menty ist offline   Mit Zitat antworten
Alt 26-08-2004, 16:28   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2001
Beiträge: 35
Hilft leider auch nicht, da ich den Namen menu_punkte[x] schon vergeben habe. Das ist auch der Grund, warum sich der Name des Textfeld - Mcs davon unterscheiden muss.
stefank86 ist offline   Mit Zitat antworten
Alt 26-08-2004, 16:32   #7 (permalink)
Gimbel Deluchs
 
Registriert seit: Apr 2004
Ort: Wieder da!
Beiträge: 153
Das Problem bei dieser Variante:

PHP-Code:
menu_punkte = new Array("Punkt_1""Punkt_2""Punkt_3""Punkt_4")
for(
x=0menu_punkte.lengthx++) {
    var 
mc_name menu_punkte[x]+"feld";
    
attachMovie("textfeld_mc",mc_name,x);
    
mc_name._x = (x)*50;
    
mc_name._y 10;
    
mc_name.textfeld_name.text "beschriftung";

ist, dass Flash bei mc_name._x eine Variable vom Typ MovieClip erwartet, in diesem Fall enthält die Variable mc_name aber einen String. Daher musst Du den Mc über this[mc_name] ansprechen. Flash wertet den Inhalt der []-Klammern aus und arbeitet dann wie erwartet.

Alternativ könntest Du sowas versuchen:

(Ungetestet, sollte aber laufen)
PHP-Code:
menu_punkte = new Array("Punkt_1""Punkt_2""Punkt_3""Punkt_4")
beschriftung = new Array("bla1""bla2""bla3""bla4"); 
for(
x=0menu_punkte.lengthx++) {
    
//Erstellt leeren Mc, in mc_name wird eine Referenz auf diesen
//gespeichert (typ von mc_name ist dann MovieClip)
mc_name this.createEmptyMovieClip(menu_punkte[x], x);
mc_name._x =(x)*50;
mc_name._y 10;
mc_name.createTextField("textfeld"00000);
mc_name.textfeld.autoSize true;
mc_name.textfeld.text beschriftung[x];


jetzt hat mc_name den richtigen Typ und Du kannst Dir die Array Schreibweise mit den Klammern sparen.



Gruss

Mr.D

Geändert von Mr.Dauerfeuer (26-08-2004 um 16:35 Uhr)
Mr.Dauerfeuer ist offline   Mit Zitat antworten
Alt 26-08-2004, 18:42   #8 (permalink)
Neuer User
 
Registriert seit: Aug 2001
Beiträge: 35
Schade, dass es scheinbar nicht so möglich ist, wie ich mir das vorstelle.

Vielen Dank für die Hilfe.

EDIT: Ich hab das mit den MCs jetzt folgendermasen gelöst und stehe vor dem nächsten Problem:

PHP-Code:
var button this.attachMovie("button",menu_punkte[x]+"button",x);
button.onRollOver = function() {
    
trace(button);

Das ganze steht in einer for-Schleife, in der x bei jedem Durchlauf inkrementiert wird.
Die Meldung, die durch trace zurückgegeben wird, ist immer - egal welcher Button betätigt wird - der Name des Buttons aus dem letzten Durchlauf der Schleife.
Meine Frage: Kann ich den Namen irgendwie einfrieren, so dass ich damit in der RollOver - Funktion was anfangen kann?

Vielen Dank
Stefan

Geändert von stefank86 (27-08-2004 um 11:52 Uhr)
stefank86 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 16:41 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele