Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-02-2006, 15:49   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 33
Wie spreche ich Instanzen auf einem bestimmten Frame an?

Hallo zusammen,
bin noch neu mit AS, deshalb eine Verständnisfrage.
Ich habe zwei Frames. In beiden Frames (Schlüsselbilder) jeweils eine Instanz einer gleichen MC-Klasse eines Symbols. Beide Instanzen heißen gleich, angenommen "Seite". Die Instanzen haben das Merkmal "Name". Im ersten Frame ist der Wert des Merkmals angenommen "1", im zweiten "2".

Wenn ich jetzt auf einer "durchgehenden" Ebene (ohne Schlüsselbilder) in einem AS mit if (Seite.Name = "1") abfragen will, auf welchem Frame / Bild ich mich befinde, liefert AS mir immer den Wert der 1. Instanz zurück. Habe auch schon mit this.Seite.Name probiert, ging auch nicht.

Wie Frage ich gezielt eine Instanz auf dem aktuellen Frame ab?

Zusatzfrage: Kann ich einem Frame Eigenschaften / Merkmale statisch zuordnen, ohne dafür extra ein Symbol (MC) mit Eigenschaften auf die Bühne zu setzen?

vielen Dank für jeden Tipp
Tiemo
Tiemo H. ist offline   Mit Zitat antworten
Alt 09-02-2006, 22:37   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
if (Seite.Name = "1") abfragen will, auf welchem Frame / Bild ich mich befinde, liefert AS mir immer den Wert der 1
Mit einem Gleichheitszeichen ist es ja auch eine Variablenzuweisung, Vergleiche auf Werte oder Strings werden mit zwei Gleichheitsszeichen gesetzt, wenn du auch noch den Typ mit überprüfen willst, sogar drei Gleichheitszeichen.

Außerdem kannst du das auch ohne Variablen abfragen, indem du die MC-Eigenschaft _currentframe abprüfst, also:
ActionScript:
  1. if(_level0._currentframe == 1){
  2.    //tue etwas
  3. }
  4. else{//Frame = 2
  5.    //tu was anderes
  6. }

Zitat:
Kann ich einem Frame Eigenschaften / Merkmale statisch zuordnen,
Schon mal etwas von Variablen gehört? Die können sowohl lokal gesetzt werden, mit vorangestelltem var, also bspw. var meineVar = 0), oder global mit vorangestelltem _global., also bspw. _global.meineVar = 0) oder Zeitleistenbasiert ohne vorangestellten Bezeichner, z.B. meineVar = 0;

Außerdem kann ich dir nur empfehlen, auf die Verwendung mehrerer Frames zu verzichten. Man kann auch alles auf einem Frame mit Funktionsblöcken oder OOP erstellen...

Geändert von agedoubleju (09-02-2006 um 22:39 Uhr)
  Mit Zitat antworten
Alt 10-02-2006, 07:34   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 33
jo, das eine = war ein Schreibfehler.
Zitat:
Außerdem kannst du das auch ohne Variablen abfragen, indem du die MC-Eigenschaft _currentframe abprüfst, also:
ich wollte aber nicht die Id des aktuellen Frames wissen, sondern dem Frame oder einem Objekt auf dem Frame beliebig viele eigene Eigenschaften geben und abfragen. Also mal angenommen ich mache mehrere verschiedene "Seiten", pro Seite einen Frame, da jede Seite grafisch und funktionell völlig unterschiedlich aufgebaut ist. Und jetzt will ich z.B. einen Flag "Seite besucht: true / false". Dafür wollte ich dem Frame oder einem Objekt auf dem Frame Eigenschaften geben, die ich in einem allgemeinen AS (über alle Frames) abfragen kann. Z.B. if (Seite.besucht == true) blabla. Deshalb wollte ich auf jedem Frame eine Instanz des selben Objektes mit gleichem Namen "Seite" haben, damit ich im AS immer den gleichen Instanzennamen abfragen kann, aber jede Instanz kann in der Eigenschaft "besucht" natürlich unterschiedliche Werte haben. Das funktioniert unterdessen auch, allerdings funktioniert nach einem gotoAndStop das auslesen dieser Eigenschaften nicht. Kommt immer: undefined. (vor dem gotoAndStop kann ich die Eigenschaft auslesen.

Zitat:
Schon mal etwas von Variablen gehört?
Ja. Nur wäre das wesentlich aufwendiger. Bei 30 "Seiten", die jeweils 10 Eigenschaften haben können, müßte ich das mit globalen Arrays machen, in denen ich meine Eigenschaften / Flags speichere und das fand ich nicht so geeignet, als wenn ich die Eigenschaften an dem jeweiligen Objekt (Seite) speichere (OO) Ich möchte schon möglichst einen OO Ansatz mit Klassen gehen.

Vielleicht bin ich aber damit bei Flash auch völlig auf dem Holzweg.

Gruß
Tiemo
Tiemo H. ist offline   Mit Zitat antworten
Alt 10-02-2006, 07:55   #4 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Speichere die Flags doch auf einem Objekt!? Für jede Seite eine Variable darauf, mit entsprechend true/false. Macht dir nicht mehr Schreibarbeit, als auf jedem Frame ein Objekt zu platzieren. Ausserdem isses übersichtlicher!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 10-02-2006, 08:07   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 33
Hi bamboocha,
ja genau, da bin ich auch unterdessen, klappt auch im Prinzip, nur kann ich jetzt nach einem gotoAndStop nicht auf die Eigenschaften des Objektes zugreifen, siehe mein letztes Posting in diesem Thread:
http://www.flashforum.de/forum/flash-einsteiger/kann-nach-stop-nicht-auf-objekteigenschaften-zugreifen-193381.html#post1381385

kämpfe noch etwas eine URL zu posten ;-)

Danke für einen Tipp
Tiemo

Geändert von Tiemo H. (10-02-2006 um 08:09 Uhr)
Tiemo H. ist offline   Mit Zitat antworten
Alt 10-02-2006, 08:36   #6 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Ich denke, du hast mich nicht ganz richtig verstanden... ich sprche von einem globalen Objekt!
ActionScript:
  1. _global.SeitenInfos = new Object();
  2. var infos = _global.SeitenInfos;
  3. for(var i = 0; i < AnzahlSeiten; i++) {
  4.     infos["Seite"+i] = new Object();
  5.     infos["Seite"+i].besucht = false;
  6. }
  7.  
  8. //Und wenn du dann auf die Seite kommst:
  9. _global.SeitenInfos["Seite"+this.seitenid].besucht = true;
Unter der Voraussetzung, dass du dann auf dieser Seite ne Variable "seitenid" hast, die die Seitenzahl enthält!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 10-02-2006, 08:42   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 33
ok, jetzt verstehe ich
gut! vielen Dank!
Tiemo
Tiemo H. 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 15:17 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele