Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-08-2005, 20:09   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 3
Variablen in Systemfunktionsaufrufen

Hallo,

Ich habe hier folgendes Problem: In meinem Film wird zu Anfang eine globale Variable vis_movie angelegt. Darin steht, welcher MovieClip gerade angezeigt wird, also in seiner Eigenschaft _visible true ist (z.B.: _root.mc_service). Das funktioniert auch soweit, der Debugger zeigt mir immer den richtigen Moviclip an.

Jetzt habe ich einen Movieclip mc_text mit einem dynamischen Textfeld mit rollbarem Text und zwei Buttons dazu, die die Variable scroll im Textfeld um eins erhöhen bzw. eins abziehen, je nach dem

Ich wollte jetzt eigentlich dieses Textfeld mit der Variable vis_movie in Verbindung bringen, besser gesagt den Code, der das Textfeld zugreift:

ActionScript:
  1. vis_movie.mc_text.textfeld.scroll += 1;

Das dumme ist nur, dass das so irgendwie nicht funktioniert. Das scrollen geht, wenn ich die Variable weglasse und den gesamten Pfad selbst hinzufüge:

ActionScript:
  1. _root.mc_service.mc_text.textfeld.scroll += 1;

Prinzipiell kann ich damit arbeiten, aber das schränkt dann die dynamik der ganzen Sache ein.

Den Text-MovieClip nach _root zu legen möchte ich übrigens nicht unbedingt tun.

Ich hoffe ich hab mich halbwegs verständlich ausgedrückt und ich hoffe nicht, dass ich nur irgendwas simples übersehen habe

Matthew
matthewb ist offline   Mit Zitat antworten
Alt 31-08-2005, 21:39   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Wenn zu dem Zeitpunkt wo du den Scrollbefehl mit vis_movie setzt diese Variable tatsächlich die Referenz _root.mc_service hat, müsste es funzen.

Aber wieso setzt du keinen trace-Befehl, der dir Klarheit verschafft?
ActionScript:
  1. trace("vis_movie="+vis_movie);
  2. trace("vis_movie.mc_text.textfeld");//wenn undefined kommt stimmt der Pfad nicht...
  3. vis_movie.mc_text.textfeld.scroll += 1;
Und das ganze mit STRG-ENTER im Testmodus laufen lassen...
  Mit Zitat antworten
Alt 31-08-2005, 21:48   #3 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Hallo Ihr beiden

oder versucht das mal!
ActionScript:
  1. this[vis_movie].mc_text.textfeld.scroll += 1;


Gruss Dec
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 31-08-2005, 21:53   #4 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
..viel Text, allerdings nicht wirklich viel Info , aber soweit kann ich schon mal antworten
Zitat:
Zitat von matthewb
....
ActionScript:
  1. vis_movie.mc_text.textfeld.scroll += 1;
....
...dürfte funktionieren, wenn der Rest auch richtig ist.

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 31-08-2005, 22:17   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 3
Also der Trace-Befehl (manchmal vergisst man eben die einfachsten Dinge ) gibt ein undefined zurück (In deiner 2. Codezeile fallen die Anführungszeichen weg, sonst passiert gar nichts ). Er zeigt aber bei vis_movie die richtige Variable an.

Das verwirrt mich echt. Wenn ich vis_movie durch den richtigen Pfad, also in dem fall _root.mc_shop ersetze, damit dann also _root.mc_shop.mc_text.textfeld.scroll daraus wird geht es ohne Probleme, dann gibt es bei Trace auch eine ordentliche Ausgabe (_level0.mc_shop.mc_text.textfeld).

Gibt es noch eine andere Möglichkeit, diese Verkettung durchzuführen?

Der Vorschlag von Decrone hat ebenso nichts gebracht.

Zitat:
Zitat von Alois
..viel Text, allerdings nicht wirklich viel Info , aber soweit kann ich schon mal antworten
Sorry, ich bin nicht ganz firm im Beschreiben von Flash-Problemstellungen Was fehlt denn noch? Damit ich es beim nächsten mal (respektive jetzt gleich) besser machen kann.

Matthew

Geändert von matthewb (31-08-2005 um 22:33 Uhr)
matthewb ist offline   Mit Zitat antworten
Alt 31-08-2005, 23:54   #6 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Wenn du ein undefined bekommst, hast du zum Zeitpunkt des Befehls die Referenz noch nicht übergeben. Mach das doch einfach vorher...

Falls das ein internes Zeitproblem zur Laufzeit ist, hilft ein onEnterFrame-Event an den richtigen Stellen häufig auch weiter; Flash ist halt manchmal etwas langsam...
  Mit Zitat antworten
Alt 01-09-2005, 07:56   #7 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 3
Klingt plausibel, aber wenn ich jetzt z.B. im selben Script einfach eine Variable "test" davor setze, die genau den gleichen Inhalt hat (natürlich nicht dynamisch vergeben):

ActionScript:
  1. test = "_root.mc_service"
  2. test.mc_text.textfeld.scroll += 1;

Dann geht es auch nicht, oder hat das auch was mit der Zeit zu tun? Weil die Variable doch eigentlich gleich initialisiert wird.
matthewb ist offline   Mit Zitat antworten
Alt 01-09-2005, 08:50   #8 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
dann gib mal ohne _root an und benutze dann mal meine Variante. So hatte ich das nämlich getestet gehabt. Und ansonten natürlich wie @agedoubleju & @Alois es schon gesagt haben!

ActionScript:
  1. vis_movie = "mc_service";
  2. this[vis_movie].mc_text.textfeld.scroll += 1;

Gruss Dec
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 01-09-2005, 12:07   #9 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
...oder halt ohne Anführungszeichen:
ActionScript:
  1. test = _root.mc_service;
  2. test.mc_text.textfeld.scroll += 1

Alois

btw.:...hab fast erwartet, daß Du nicht die Instanz, sondern einen String der variable zuweist..., aber diese Info fehlte z.B. auch schon...
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois 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 10:48 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele