Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-07-2004, 10:37   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 31
Question Dynamisch Objekte ansprechen mit Variablen

Hi,
gibt es irgendwie bei Flash die Möglichkeit ein Objekt Pfad in einer Variable zu speichern und mit Hilfe der Variable später aktionen beim Objekt in einer allgemeinen Funktion zu steuern?

Um es zu verdeutlichen wie ich es meine hier mal ein Beispiel:

_root.navigation.onRollOver = function () {
_global.speichervariable = _root.naviagtion;
}

function zoomIn () {
_global.speichervariable._width++;
_global.speichervariable._height++;
}

Ich habe nämlich eine Menge Objekte, für die ich ungern jeweils eine eigene Funktion schreiben möchte.
Ich kenne sowas aus PHP das man dort mit dem Befehl "eval( ..... )" einen String in den Klammern als PHP Befehl behandeln lassen kann. Für Flash dachte ich halt jetzt an sowas wie

eval(_global.speichervariable+'._width++');

Gibt es sowas in der Art bei Flash?
Novan ist offline   Mit Zitat antworten
Alt 16-07-2004, 10:43   #2 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Übergebe das Objekt doch der Funktion:

function zoomIn (objekt) {
objekt._width++;
objekt._height++;
}

_root.navigation.onRollOver = function () {
zoomIn(_root.navigation);
}
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 16-07-2004, 11:43   #3 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
da geht auch schon so, wie du es hattest...

ActionScript:
  1. _root.navigation.onRollOver = function () {
  2.        _global.speichervariable = this;
  3. }
  4.  
  5.  
  6. // und woanders dann
  7.  
  8. function zoomIn () {
  9.      var mc =   speichervariable;
  10.      mc._height+=1;
  11.      mc._width+=1;
  12. }
  13.  
  14.  
  15. zoomIn();

würde bereits genauso gehen...
da du ja das objekt mit samt seinem pfad in der variablen abgelegt hattest brauchst du da sonst nix extra mehr für...

im übrigen:

_global brauchst du nur voranstellen, wenn du etwas erstellst oder ändern willst...
zum auslesen reicht der var/obj name ohne das vorangesetllte _global.



greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 16-07-2004, 14:57   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 31
Question

Hmm ist irgendwie komisch und funktioniert nicht so wie es soll.
Ich habe eine Zeitleiste für die Navigation wo eine Ebene existiert die "Aktionskript" und wenn dort der Abspielbalken auf Bild 40 kommt wird ein AS ausgelöst was so aussieht :
PHP-Code:
stop();
_root.navigation.gotoAndPlay(1);
trace('hihi:'+_global.objekt+'<->'+_global.level);
_global.objekt _root.oesterreich_mc.oesterreich-level-1;
_global.level  0;
trace('huhu:'+_global.objekt+'<->'+_global.level); 
Die Traces sind zum Debuggen mal drin und ergeben voll komisches Zeug:
PHP-Code:
hihi:undefined<->undefined
huhu
:NaN<->
Die erste Zeile ist klar da haben die globalen Variablen noch keinen Wert und existieren noch nicht, aber wieder steht dann in der 2. Ausgabe dieses "NaN"
da müßte doch irgendwas von wegen "_root.oesterreich_mc.oesterreich-level-1" stehen oder so

Wenn dann auf den Knopf gedrückt wird der die oben genannte (im Thema) Problemfunktion aufruft, dann kann er _width & _height von dem Objekt nicht bekommen und alles funzt nicht.
Novan ist offline   Mit Zitat antworten
Alt 16-07-2004, 16:19   #5 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
bild 40 ?! ????
d aist ja die fehlersuche schlimmer als andere...
warum arbeitet ihr nicht mit single-frame-anwendungen...?
[net bös gemeint...]
aber das macht euch doch das leben unnötig schwer...


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 16-07-2004, 16:41   #6 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 31
Also die Hauptzeitleiste hat ja auch nur 2 Bilder (Preloader & Hauptseite). Ich habe das in die MC-Zeitleisten gepackt, da ich auch mit Tweens arbeite brauche ich Teilweise 40 Bilder. Ein Tween braucht ja auch etwas Zeit damit es gut aussieht.
Aber das Bild 40 Sollte ja nicht das Problem an der Sache sein.....
Novan ist offline   Mit Zitat antworten
Alt 16-07-2004, 16:49   #7 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ActionScript:
  1. trace('hihi:'+_global.objekt+'<->'+_global.level);

ohne _global

ActionScript:
  1. trace('hihi: '+objekt+' <-> '+level);


ebenso:
ActionScript:
  1. trace('huhu:'+objekt+' <-> '+level);


was kommt da raus?


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 16-07-2004, 16:52   #8 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
und deine zuweisung ergibt keine number...das heißt, dass du da einen fehler im typen hast...

vielleicht so?

ActionScript:
  1. _global.objekt = Number(_root.oesterreich_mc.oesterreich)-Number(level)-1;


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 16-07-2004, 17:24   #9 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 31
Hi,
auch ohne "_global" im trace kommt die selbe Ausgabe. In dem Teil
"_root.oesterreich_mc.oesterreich-level-1" ist keine Variable drin.

Es müßte wenn dann (schreibe es nur zur verdeutlichung) dann so heissen
_global.objekt = Number(_root.oesterreich_mc.oesterreich-level-1);

Aber alle deine Ansätze zeigen keine Änderung ....
Kann man eigentlich auch Zeiger (Pointer) Variablen deklarieren sodass ich einfach einen Zeiger auf das Symbol mache?
Novan ist offline   Mit Zitat antworten
Alt 16-07-2004, 17:33   #10 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 31
Hmm die Technik an sich schein zu klappen. Habe das ganze mal probiert mit

_global.objekt = _root.oesterreich_mc;

und da klappt alles ... scheint an dem Ding dahinter zu liegen was er wohl nicht schnallt....
mal rumprobieren weiter.
Novan ist offline   Mit Zitat antworten
Alt 16-07-2004, 17:38   #11 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 31
Also Flash MX 2004 mag hier wohl keine Bindestriche im Instanzennamen.

_global.objekt = _root.oesterreich_mc.oesterreich-level-1 <--- geht nicht
_global.objekt = _root.oesterreich_mc.oesterreich_level_1 <---- geht
Novan ist offline   Mit Zitat antworten
Alt 16-07-2004, 18:31   #12 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
HÄÄÄÄ?
das war ein bindestrich im instanznamen ???

ich dachte, das sei eine mathematische operator...also ein minus...

natürlich darfst du außer dem unterstrich keinerlei sonderzeichen in objekt,instanz oder sonstigen namen benutzen...

der bindestrich ist für flash ein mathematisches minuszeichen...


kein wunder, dasas das nicht ging...da wäre ich nie drauf gekommen, dass du das als bindestrich mißbrauchen wolltest...


hähä..geil...
[net bös gemeint]


greetz

kelor
kelor 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:14 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele