Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-12-2003, 15:10   #1 (permalink)
Neuer User
 
Benutzerbild von domindian
 
Registriert seit: Apr 2003
Beiträge: 113
Question _root[textfeld]

hallo!

kann mir jemand folgendes erklären, in der hilfe und im netz finde keine erklärung:

in einem code-beispiel auf http://www.flashbattle.de/forumv2/th...adid=4085&sid=

bin ich auf
ActionScript:
  1. _root[textfeld]
gestoßen.
textfeld ist eine variable die über die parameter der funktion übergeben wird und den instanznamen des dyn. textfeldes bezeichnet. über _root[textfeld]. ... wird danach darauf zugegriffen und mit seinen eigenschaften gearbeitet. mich verwirren die eckigen klammern - _root ist ja kein array. oder doch? sind alle instanzen einer ebene über angehängte eckige klammern ansprechbar? ist das das selbe als würde man "_root.textfeld" schreiben? oder ist ersteres eine schreibweise aus älteren versionen? was wenn man das ganze ändern möchte. funktioniert _parent[textfeld] analog dazu?

würde mich freuen wenn mir zumindest jemand erklären kann unter welchen stichwort ich in der hilfe etwas darüber lesen kann oder einen weblink dazu hätte.

ganz vielen dank!
und grüße
~d
domindian ist offline   Mit Zitat antworten
Alt 03-12-2003, 15:13   #2 (permalink)
nordlicht
 
Benutzerbild von phantura
 
Registriert seit: Apr 2002
Ort: Hamburg
Beiträge: 137
hallo domindian,

textfeld ist ein mc bzw. sein instanzname... ist der instanzname "feld" kannst du schreiben:
ActionScript:
  1. _root["feld"]
  2. // oder
  3. _root.feld
hoffe, das reicht als erklärung

gruss phan
phantura ist offline   Mit Zitat antworten
Alt 03-12-2003, 15:21   #3 (permalink)
Neuer User
 
Benutzerbild von domindian
 
Registriert seit: Apr 2003
Beiträge: 113
danke! das beruhigt mich schon mal sehr!

trotzdem noch fragen:

funktioniert _parent["feld"] genauso? - denke, ja.

und zweitens, wie kann ich in der 'punktsyntax' einen clip mit seinem instanznamen ansprechen, wenn ich diesen (instanznamen) nicht habe, sondern nur eine variable in der er gespeichert ist. also was man mit ...

name = "feld";
trace(_root.eval(name)._x);

...wohl vergeblich versucht.
domindian ist offline   Mit Zitat antworten
Alt 03-12-2003, 15:58   #4 (permalink)
dummschnack
 
Benutzerbild von Chino
 
Registriert seit: Mar 2002
Ort: Essen
Beiträge: 1.778
Hi!

Deine Letzte Frage ist mit deiner ersten beantwortet!

Intern verwaltet Flash Instanzen in assoziativen Arrays. Daher kann man mit den eckigen Klammern auf die Instanzen zugreifen.

z.B. so:
ActionScript:
  1. this.test = "buttonMC";
  2. trace(this[test]);

Gruss, Chino
__________________
» flashbored since 2006
» my band: radioghost
Chino ist offline   Mit Zitat antworten
Alt 03-12-2003, 16:09   #5 (permalink)
th.
Neuer User
 
Benutzerbild von th.
 
Registriert seit: Oct 2001
Ort: Bielefeld
Beiträge: 1.279
Um es mit Deinem Beispiel zu schreiben:
ActionScript:
  1. name = "feld";
  2. trace(this[name]._x);
so kann man dann auch Namen zusammensetzen:
ActionScript:
  1. item=1;
  2. trace(this["feld"+item]._x);
gibt die x-Position von 'feld1' aus.


Gruß,
Thorsten
__________________
polyaktiv.de
Flash 3D-Renderer
th. ist offline   Mit Zitat antworten
Alt 03-12-2003, 17:02   #6 (permalink)
Neuer User
 
Benutzerbild von domindian
 
Registriert seit: Apr 2003
Beiträge: 113
Smile

danke!
domindian ist offline   Mit Zitat antworten
Alt 03-12-2003, 17:27   #7 (permalink)
Neuer User
 
Benutzerbild von domindian
 
Registriert seit: Apr 2003
Beiträge: 113
eine frage hab ich zu dem im link genannten beispiel noch:

warum kommt nach der definition der methode des 'hinauf-buttons' ein ";" ????!
ActionScript:
  1. ...
  2.     _root[upscroll].onPress = function() {
  3.         controller.onEnterFrame = function () {
  4.             if (_root[textfeld].scroll > 1) {
  5.                 _root[textfeld].scroll -= 1;
  6.                 _root[downscroll].id.scrollerlauf (-1)
  7.             }
  8.         }
  9.     };
  10. ....

..und dafür nach dem aufruf
ActionScript:
  1. _root[downscroll].id.scrollerlauf (-1)
nicht??

hab ich noch nirgendwo gelesen. in der hilfe wird das in dem zusammenhang auch nicht erklärt..
~d
domindian ist offline   Mit Zitat antworten
Alt 03-12-2003, 17:33   #8 (permalink)
dummschnack
 
Benutzerbild von Chino
 
Registriert seit: Mar 2002
Ort: Essen
Beiträge: 1.778
Ist einfach ein Tippfehler!

Flash6 vergibt aber viel, deshalb kommt dabei keine Fehlermeldung raus.

Wenn Du bei so etwas unsicher bist, kopier dir einfach den code in den Flash AS Editor und klick auf "Auto Formatieren".

Gruss, Chino
__________________
» flashbored since 2006
» my band: radioghost
Chino ist offline   Mit Zitat antworten
Alt 03-12-2003, 17:54   #9 (permalink)
Neuer User
 
Benutzerbild von domindian
 
Registriert seit: Apr 2003
Beiträge: 113
thx
da bin ich beruhigt.
danke auch für den tipp, wa man mit dem autoformatierer anfangen kann. es wundert mich aber, dass er dabei nach jeder geschungenen klammer auch einen strichpunkt setzt..

ist das nicht falsch? naja, wenns toleriert wird...


lg
~d
domindian 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 02:00 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele