Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-11-2007, 13:33   #1 (permalink)
hilft gerne...
 
Registriert seit: Feb 2007
Ort: Carlsberg
Beiträge: 416
Dynamisch MC ansprechen

PHP-Code:
for (var i:Number 0i<90;i++) {
                var 
j:Number i+1;
                [
j]user karoverteilung[i];
                
_parent._parent.test2_txt.text "Movieclip " " : " + [j]user "\n";
            } 
Ich habe ein Array in dem 90 User gespeichert sind. Des weiteren habe ich 90 Movieclips auf der Bühne, deren Instanznamen aufsteigend von 1-90 sind. In der Schleife soll jedem Movieclip ein User zugeordnet werden. Das passiert durch die Variable user innerhalb von jedem MC. Jedoch traced mir Flash in

PHP-Code:
_parent._parent.test2_txt.text "Movieclip " " : " + [j]user "\n"
jedesmal nen Syntaxfehler...

Ich hab schon viel rumprobiert, aber es will einfach nicht.
McMannus ist offline   Mit Zitat antworten
Alt 24-11-2007, 14:06   #2 (permalink)
Nix Wisser
 
Benutzerbild von nullidee
 
Registriert seit: May 2003
Ort: Würzburg, Kleinstadt
Beiträge: 3.510
vielleicht so
PHP-Code:
for (var i:Number 0i<90;i++) {
                
user[i+1] = karoverteilung[i];
                
_parent._parent.test2_txt.text "Movieclip " i" : " user[i+1] + "\n";
            } 
__________________
nullidee

Abakus GT 10² Kugeln - 80"Leinwand - CARAN D´ACHE SUPRACOLOR®
nullidee ist offline   Mit Zitat antworten
Alt 24-11-2007, 14:46   #3 (permalink)
hilft gerne...
 
Registriert seit: Feb 2007
Ort: Carlsberg
Beiträge: 416
normalerweise kann man das ja so machen:
PHP-Code:
mc1.user "User1"
In dem Fall wie dus beschrieben wäre ja user ein Array. Soll es aber nicht sein, sondern die Variable user soll in jedem MC intern jeweils den Wert aus
der karoverteilung an der Stelle i bekommen. In deutsch heißt das, dass in jedem MC eine Variable user besteht.
McMannus ist offline   Mit Zitat antworten
Alt 24-11-2007, 15:34   #4 (permalink)
Nix Wisser
 
Benutzerbild von nullidee
 
Registriert seit: May 2003
Ort: Würzburg, Kleinstadt
Beiträge: 3.510
war aus deiner Erklärung nicht ganz klar
PHP-Code:
for (var i:Number 0i<90;i++) {
     var 
mc = ["Movieclip " + (i+1)];//wenn deine mcs z.B."Movieclip1" heissen
     //Pfad dazu nicht vergessen
     
mc.user karoverteilung[i];//wenn dein Array karoverteilung heisst
     
_parent._parent.test2_txt.text "Movieclip " + (i+1) + " : " mc.user "\n";

__________________
nullidee

Abakus GT 10² Kugeln - 80"Leinwand - CARAN D´ACHE SUPRACOLOR®
nullidee ist offline   Mit Zitat antworten
Alt 24-11-2007, 16:42   #5 (permalink)
hilft gerne...
 
Registriert seit: Feb 2007
Ort: Carlsberg
Beiträge: 416
PHP-Code:
var mc = ["Movieclip " + (i+1)]; 
Die eckige Klammer war das Zauberwort. Dankeschön!
McMannus ist offline   Mit Zitat antworten
Alt 13-02-2008, 16:57   #6 (permalink)
Pixelschubser
 
Registriert seit: Feb 2004
Beiträge: 111
Ich möchte ebenfalls einen MC dynamisch ansprechen. Leider hat mir der Tipp hier mit den eckigen Klammern nicht geholfen. Vielleicht könnt ihr mir ja weiter helfen:

In einem MC "ulrich" liegt ein MC mit dem Namen "otto0". MC "otto0" soll mehrfach dupliziert werden und "otto1", "otto2" heißen.

Im 1. Frame von ulrich habe dazu ich folgenden Code:

Code:
for (var i = 0; i<10; i++)
{
	duplicateMovieClip(otto0, "otto"+i+1, i+1);
	otto0.meineTextbox.htmlText = "Test";  //funktioniert
	this["otto"+i].meineTextbox.htmlText = "Test";  //funktioniert nicht
}
larpo ist offline   Mit Zitat antworten
Alt 13-02-2008, 17:02   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Klammern setzten bei i+1 (sonst kommt 01, 02,...010 dabei raus)
PHP-Code:
duplicateMovieClip(otto0"otto"+(i+1), i+1);
this["otto"+(i+1)].meineTextbox.htmlText "Test"
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 13-02-2008, 17:10   #8 (permalink)
Pixelschubser
 
Registriert seit: Feb 2004
Beiträge: 111
Danke für die megaschnelle Antwort. Leider hilft mir das jedoch nicht für das "Ansprechen" der MC "otto0" weiter. Wie in dem Quellcode zu sehen, kann ich das den bestehenden MC otto0 über
Code:
otto0.
ansprechen, nicht aber über
Code:
this["otto"+i].
i ist ja bei dem ersten Durchlauf der Schleife = 0, von daher sollte es doch eigentlich funktionieren - tut es aber wie gesagt leider nicht :-(

Geändert von larpo (13-02-2008 um 17:12 Uhr)
larpo ist offline   Mit Zitat antworten
Alt 13-02-2008, 17:15   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890

PHP-Code:
this["otto"+(i+1)].meineTextbox.htmlText "Test"
Hatte ich doch geschrieben. "Einfacher" ginge es vielleicht auch so hier:
PHP-Code:
var mc duplicateMovieClip(otto0"otto"+(i+1), i+1);
//
mc.meineTextbox.htmlText "Test"
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 13-02-2008, 17:30   #10 (permalink)
Pixelschubser
 
Registriert seit: Feb 2004
Beiträge: 111
Ich möchte gar nicht otto1 (
Code:
otto+(i+1)
) ansprechen, sondern otto0. Siehe 3. Zeile in der FOR-Schleife meines ersten Postings. Daher brachte mich dein Tipp mit den Klammern auch nicht weiter.

Selbstverständlich habe ich das mit der Variablenzuweisung von mc gerade ausprobiert. Auch hier wird leider nichts in das Textfeld geschrieben :-(
larpo ist offline   Mit Zitat antworten
Alt 13-02-2008, 18:36   #11 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Versteh ich zwar auch net so ganz. Denn wenn du "otto0" explizit ansprechen willst, dann sprich ihn halt mittels seines Bezeichners "otto0" doch an. Wo ist da das Problem? Ansonsten wäre es sicherlich hilfreich zu erfahren, wann du otto0 denn ansprechen willst.

Oder meinst du etwa, dass "otto0" nur einmal angesprochen werden soll? Dann mach halt so:
PHP-Code:
for (var 1<= 10i++) {
    
duplicateMovieClip(otto0"otto"ii);
    if(
== iotto0.meineTextbox.htmlText "Test";
    
this["otto" i].meineTextbox.htmlText "Test";

Oder du vergibst den Text halt schon vor der Schleife. Also so:
PHP-Code:
otto0.meineTextbox.htmlText "Test";
for (var 
1<= 10i++) {
    
duplicateMovieClip(otto0"otto"ii);
    
this["otto" i].meineTextbox.htmlText "Test";

__________________
XING
richtsteiger ist offline   Mit Zitat antworten
Alt 13-02-2008, 19:18   #12 (permalink)
Pixelschubser
 
Registriert seit: Feb 2004
Beiträge: 111
Zur Erklärung :-) :

Natürlich will ich die otto-MCs innerhalb der Schleife dynamisch ansprechen und nicht direkt über den jeweiligen Bezeichner.

Ich hatte die nachfolgende Zeile
Code:
otto0.meineTextbox.htmlText = "Test";  //funktioniert
nur in meinem ursprünglichen Code stehen, damit ihr seht, wo der MC otto0 liegt und das ich ihn so direkt fehlerfrei ansprechen kann. Nur eben nicht über die dynamische Methode mit den eckigen Klammern, die ich ja spätestens für die anderen otto-MCs benötige.

Mein Problem ist also, dass ich die otto-MCs nicht dynamisch ansprechen kann. Ob otto0 vor, oder innerhalb der Schleife angesprochen wird, ist daher nebensächlich.

Ich hoffe ich konnte es ein wenig aufklären... ;-)
larpo ist offline   Mit Zitat antworten
Alt 14-02-2008, 07:32   #13 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Kann ich gar nicht so Recht glauben, dass es dir nicht möglich ist, dynamisch auf die MCs zuzugreifen. Da muss wohl noch irgendetwas anderes mit reinspielen. Hat du da vielleicht mal 'ne FLA?
__________________
XING
richtsteiger ist offline   Mit Zitat antworten
Alt 14-02-2008, 07:47   #14 (permalink)
Pixelschubser
 
Registriert seit: Feb 2004
Beiträge: 111
Keine Ding. Here u go...

http://dance4all.danceserver.ist-online.ws/xml.zip

Die MC mit dem AS im 1. Frame liegt auf der Ebene "content"

Geändert von larpo (14-02-2008 um 07:50 Uhr)
larpo ist offline   Mit Zitat antworten
Alt 14-02-2008, 08:40   #15 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Servus,

als was hast du denn abgespeichert? Mit Flash 8 kann ich es nicht öffnen.

Aber du hast einen wesentlichen Aspekt vergessen zu erwähnen. Kommen etwa die Texte aus der XML? Wartest du das erfolgreiche Laden denn auch ab und füllst dann erst die Textfelder? Ich vermute mal nicht. Daher ist es auch nicht verwunderlich, dass deine Textfelder nicht gefüllt werden.

Vom Prinzip her müsste es dann so aussehen:
PHP-Code:
xmlData = new XML();
xmlData.ignoreWhite true;
xmlData.onLoad = function(success) {
  if (
success) {
    
fillFields();
  }
}
xmlData.load("mydata.xml"); 
Und deine Schleife packst du dann halt in die Funktion fillFields().

Aber wie eingangs schon geschrieben ansonsten noch mal als Flash 8.
__________________
XING
richtsteiger 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 08:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele