Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-08-2004, 10:59   #1 (permalink)
nie-auslernender
 
Registriert seit: Jul 2001
Beiträge: 466
verständnisfrage syntax

hi, also ich hab mal wieder folgenden script. so funktioniert er:

PHP-Code:
for(i=_root.squadstarti>_root.squadendi--){
    for (
r=1r<99r++) {
        if (
this["squad"+i]["nick"+r] != undefined) {
            
with (this["squad"+i]) {
                
member.duplicateMovieClip("member"+rr);
                eval(
"member"+r).gotoAndStop(2);
            }
        }
    }

also das member-mc wird dupliziert und auf bild 2 gestellt. so funktionierts nicht:

PHP-Code:
for(i=_root.squadstarti>_root.squadendi--){
    for (
r=1r<99r++) {
        if (
this["squad"+i]["nick"+r] != undefined) {
            
with (this["squad"+i]) {
                
duplicateMovieClip(member"member"+rr);
                
this["member"+r].gotoAndStop(2);
            }
        }
    }

der unterschied liegt in diesen zwei zeilen:

PHP-Code:
duplicateMovieClip(member"member"+rr);
this["member"+r].gotoAndStop(2); 
warum funktioniert diese schreibweise nicht? auf bild 2 stellen funktioniert garnicht und das movie duplizieren nur einmal und danach nicht mehr, egal wie oft die schleiße durchläuft.

und noch eine frag gibt es eine möglichkeit eine for-schleife zu unterbrechen? also wenn ich z.b. die schleife 3000-mal durchlaufen lasse und bei 1000-mal eine bedingung erfüllt wird, die for-schleife abgebrochen wird. geht das?


mfg esia
__________________
it´s always the same, but most different
esia ist offline   Mit Zitat antworten
Alt 08-08-2004, 12:01   #2 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
weil du beim lezten code 'r' nicht inkrementierst

dh
PHP-Code:
duplicateMovieClip(member"member"+rr++); //sowas würde funzen
this["member"+r].gotoAndStop(2); 
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 08-08-2004, 12:07   #3 (permalink)
nie-auslernender
 
Registriert seit: Jul 2001
Beiträge: 466
aber r wird doch schon in der for schleife hochgezählt. wenn ich r trace wirds korekt hochgezählt. und falls r nicht hochgezählt werden würde. warum wird member-mc in squad1 dupliziert, aber nciht in squad2, squad3, ... ?


mfg esia
__________________
it´s always the same, but most different
esia ist offline   Mit Zitat antworten
Alt 08-08-2004, 12:08   #4 (permalink)
Wer??? Ich???
 
Registriert seit: May 2003
Ort: München
Beiträge: 807
Alle Schleifen kannst du mit

PHP-Code:
break; 
abbrechen.

Cu
hOmId
Homid ist offline   Mit Zitat antworten
Alt 08-08-2004, 12:46   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
na du benutzt doch ne with konstruktion,
also wird duplicateMovieClip als methode von squad+i aufgerufen.
in dem fall wo es funktioniert rufst du duplicateMovieClip explizit als methode des zu duplizierenden films auf.
ich benutze kaum with konstrukte sondern spare mir die schreibarbeit durch die sicherung der referenz auf einen beliebigen mc in ner referenz
in deinem fall
ActionScript:
  1. for(i=_root.squadstart; i>_root.squadend; i--){
  2.     for (r=1; r<99; r++) {
  3.         if (this["squad"+i]["nick"+r] != undefined) {
  4. //referenz auf den aktuellen squad mc
  5. var p=this["squad"+i]
  6. //sofern member in diesem mc liegt haste nun die freie wahl
  7. //als funktion
  8.                 var mbr=duplicateMovieClip(p.member, "member"+r, r);
  9. //als methode
  10. var mbr=p.member.duplicateMovieClip("member"+r, r);
  11. //analog dazu
  12.                 mbr.gotoAndStop(2);
  13.             }
  14.         }
  15.     }
  16. }

grüße
deluxe

Geändert von Deluxe (08-08-2004 um 12:50 Uhr)
Deluxe ist offline   Mit Zitat antworten
Alt 08-08-2004, 13:17   #6 (permalink)
nie-auslernender
 
Registriert seit: Jul 2001
Beiträge: 466
danke deluxe

und mit: this["member"+r].gotoAndStop(2);

verhält es sich genauso?


mfg esia
__________________
it´s always the same, but most different
esia ist offline   Mit Zitat antworten
Alt 08-08-2004, 13:27   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
nee
da funktioniert natürlich auch

ActionScript:
  1. this["member"+r]

ging bei dir nich weils eben nich anständig dupliziert wurde
(wird so interpretiert: deinSquadMC.this["member"+r])

aber da duplicateMovieClip dir den pfad zum duplizierten objekt direkt zurückliefert kannste diesen doch weiterbenutzen
also entweder wie schon o.g.
ActionScript:
  1. //in mbr(für member) pfad sichern
  2. var mbr=p.member.duplicateMovieClip("member"+r, r);
  3. //und member+r ansprechen
  4. mbr.gotoAndStop(2);
so absurde dinge gehen natürlich auch, machen das lesen aber nru schwerer
ActionScript:
  1. p.member.duplicateMovieClip("member"+r, r).gotoAndStop(2)

grüße
deluxe

Geändert von Deluxe (08-08-2004 um 13:28 Uhr)
Deluxe ist offline   Mit Zitat antworten
Alt 08-08-2004, 18:14   #8 (permalink)
nie-auslernender
 
Registriert seit: Jul 2001
Beiträge: 466
mhh, nee ging nicht auch mit richtig dupliziert. hatte ja die kombinationen durchgespielt. also auch so gings zwar das duplizieren nicht aber das goto.

PHP-Code:
member.duplicateMovieClip("member"+rr);
this["member"+r].gotoAndStop(2); 
hat nicht funktioniert, deshalb fragte ich nochmal nach.


mfg esia
__________________
it´s always the same, but most different
esia ist offline   Mit Zitat antworten
Alt 08-08-2004, 22:56   #9 (permalink)
Wer??? Ich???
 
Registriert seit: May 2003
Ort: München
Beiträge: 807
Vielleicht

PHP-Code:
member.duplicateMovieClip("member"+rr); 
eval(
"member"+r).gotoAndStop(2); 
Cu
hOmId
Homid ist offline   Mit Zitat antworten
Alt 09-08-2004, 03:11   #10 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
hmm komische sollte schon gehen is nur ne doppelreferenz die aber trotzdem gehen sollte
was zeigt nen

trace(this["member"+r])


grüße
deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 09-08-2004, 07:23   #11 (permalink)
nie-auslernender
 
Registriert seit: Jul 2001
Beiträge: 466
@homid: dass das funktioniert ist klar, siehe start-post. die frage war warum die andere schreibweise nciht funktioniert.

@deluxe: also trace gibt es richtig aus, deshalb war ich ja so verwirrt.


mfg esia
__________________
it´s always the same, but most different
esia ist offline   Mit Zitat antworten
Alt 09-08-2004, 11:35   #12 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
trace(typeof this["member"+r]) //movieclip?
trace(this["member"+r].gotoAndStop) //function?

falls beide das o.g. anzeigen war einfach frame 2 nicht in dem movieclip vorhanden. anders kann mans nich erklären
die abfragen klären ob es sich um nen movieclip handelt und ob die methode gotoAndStop vorhanden ist(naja eigentlich isses klar dass die dinge vorhanden sind nur kann man ja mal testen)

grüße
deluxe
Deluxe 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 14:32 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele