Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-04-2006, 14:29   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 25
Richtigen Instanznamen aus _currentframe generieren u. Instanzeigenschaft ändern

Hallo,
ich habe eine Reihe MCs, deren Instanznamen sich lediglich durch eine Zahl unterscheiden: richtig1_mc / richtig2_mc usw.

Die Zahlen entsprechen zugleich der Frame-Nummer, bei der sie sichtbar gemacht werden sollen.

Um jetzt zu vermeiden, so etwas zu machen...

Code:
if (_root.tabelle_mc._currentframe == 1) {
		richtig1_mc._visible = true;
		}
		if (_root.tabelle_mc._currentframe == 2) {
		richtig2_mc._visible = true;
		} 
		if (_root.tabelle_mc._currentframe == 3) {
		richtig3_mc._visible = true;
		}
... wollte ich lediglich eine Funktion aufrufen. Die Funktion soll dann also die aktuelle Frame-Nummer auslesen und so den Namen der anzuzeigenden Instanz generieren, um die ensprechende Instanz zu beeinflussen.

Doch das hier funktioniert nicht, obwohl die Variable mcInstanzname den jeweils korrekten Namen beinhaltet und obwohl sie vom Datentyp ein Object ist:

Code:
// Funktion: Je nach aktuellem Frame entsprechende Ani-Instanz sichtbar machen
function beiErfolgGluehbirne() {
	var frameNummer:Number = _root.tabelle_mc._currentframe;
	var mc:String = "richtig"+frameNummer+"_mc";
	var mcInstanzname:Object = Object(mc);
	mcInstanzname._visible = true;
	trace("mcInstanzname ist vom Datentyp "+typeof(mcInstanzname));
}
?

Grüße,
Heiko

Geändert von highco (28-04-2006 um 14:30 Uhr)
highco ist offline   Mit Zitat antworten
Alt 28-04-2006, 14:38   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Wenn deine mc's auf der _root liegen, dann musst du es wie folgt machen:
PHP-Code:
function beiErfolgGluehbirne(): Void 
{
    var 
frameNummerNumber _root.tabelle_mc._currentframe;
    var 
mcMovieClip _root"richtig" frameNummer "_mc" ];
    
    
mc._visible true;

__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 28-04-2006, 14:58   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 25
danke, aber ?

Hi,

vielen Dank. Nur leider funktioniert es so nicht bei mir: Die MCs liegen nicht auf der Root. Alles befindet sich in tabelle_mc. Auch der Aufruf der Funktion erfolgt innerhalb tabelle_mc.

Gibst Du mir noch ´nen Tipp, wie ich es dann machen kann?

Dank und Gruß.

(Was macht übrigens dieses ": Void" ?)
highco ist offline   Mit Zitat antworten
Alt 28-04-2006, 15:02   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Zitat:
Gibst Du mir noch ´nen Tipp, wie ich es dann machen kann?
Einfach anstelle von _root einfach _root.tabelle_mc.

Zitat:
(Was macht übrigens dieses ": Void" ?)
Das sagt nur an das die Funktion keinen Wert zurück gibt, ist aber nicht notwendig.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 28-04-2006, 15:27   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 25
tusch!

Hey, vielen Dank!!

Es funzt.

Bist Du so nett und verlierst noch ein paar erklärende Worte über das hier?

Code:
	var mc:MovieClip = _root.tabelle_mc["richtig"+frameNummer+"_mc"];
Mit "_root.tabelle_mc." - also mit Punkt direkt vor der öffnenden Klammer - funzt es übrigens nicht (was ich dann auch noch irgendwie logisch gefunden hätte).

So wie oben ("_root.tabelle_mc["richtig" usw.) geht´s aber. Dank und Gruß.

Ist jeder MC zugleich ein Array??
highco ist offline   Mit Zitat antworten
Alt 28-04-2006, 15:39   #6 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Genau nachgedacht habe ich darüber auch noch nicht, ich selber finde es auch etwas komisch.

Das liegt bestimmt daran, das alle Datentypen vom DatenTyp Object abstammen.
Bei einem Objekt kann man auch auf dessen Variablen, oder wie man das auch immer nennen will, mit dieser schreibweise zugreifen.

Hier ein kleines Beispiel:
PHP-Code:
var objObject = new Object();
obj."100";

trace_root"_alpha" ] );
traceobj"e" ] ); 
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 28-04-2006, 15:50   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 25
...

ok, danke. frohes schaffen noch.
highco 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 03:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele