Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-03-2005, 02:15   #1 (permalink)
Ein Alter User
 
Benutzerbild von jotti
 
Registriert seit: Mar 2004
Ort: Österreich
Beiträge: 159
Smile Problem mit Array in verschiedenen Tiefen

Hallo!

Ich möchte gerne ein Array in in ein Array geben.
Es ist sehr schwer zu beschreiben aber schaut euch mal den Code an, dann ist es sicher leichter zu verstehen.

Auf der Bühne befinden sich 2 MC mit den Nahmen mc_1 und mc_2
In diesen Movieclips sind wieder jeweils MC mit den Instanznahmen Test1 bzw. Test2. Genau diese möchte ich ansprechen.
PHP-Code:
var meinArray = new Array("mc_1""mc_2");
var 
meinArray2 = new Array("Test1""Test2");
for (var 
0i<=1i++) {
    
this[meinArray[i]].onRollOver = function() {
        
trace(this);
        
trace(this[meinArray2[i]]) // Funktioniert NICHT !
    
};

Bitte um Hilfe !

Thx Jotti
jotti ist offline   Mit Zitat antworten
Alt 09-03-2005, 02:41   #2 (permalink)
wez
flash | php | mysql
 
Registriert seit: Jun 2003
Beiträge: 65
Du legst in der for-Schleife eine onRollOver Funktion für die MovieClips aus meinArray an. Diese Funktion wird aufgerufen, wenn man mit der Maus über den Film kommt. Also genau folgender Code z.B. für mc_1:
PHP-Code:
mc_1.onRollOver = function() {
        
trace(this);
        
trace(this[meinArray2[i]]) // Funktioniert NICHT !
    
}; 
Diese Funktion befindet sich aber in _level0.mc_1! In diesem level gibt es aber weder meinArray noch i.
Du musst diesem Film also eine Variable zuweisen auf die er bei onRollOver zugreifen kann.
z.B. so:
PHP-Code:
var meinArray = new Array("mc_1""mc_2");
var 
meinArray2 = new Array("Test1""Test2");
for (var 
0i<=1i++) {
    
this[meinArray[i]].submov meinArray2[i];
    
this[meinArray[i]].onRollOver = function() {
        
trace(this);
        
trace(this.submov// Funktioniert
    
};

Ich hoffe, daß war verständlich genug um diese Uhrzeit.
wez ist offline   Mit Zitat antworten
Alt 09-03-2005, 10:27   #3 (permalink)
Ein Alter User
 
Benutzerbild von jotti
 
Registriert seit: Mar 2004
Ort: Österreich
Beiträge: 159
Noch ein Problem

PHP-Code:
var meinArray = new Array("mc_1""mc_2"); 
var 
meinArray2 = new Array("Test1""Test2"); 
for (var 
0i<=1i++) { 
    
this[meinArray[i]].submov meinArray2[i]; 
    
this[meinArray[i]].onRollOver = function() { 
        
trace(this); 
        
trace(this.submov// Funktioniert 
        
this.submov._alpha // Funktioniert NICHT !!!!!!
    
}; 

Warum Funktioniert das nicht ??
this.submov._alpha = 0 // Funktioniert NICHT !!!!!!

Geändert von jotti (09-03-2005 um 13:01 Uhr)
jotti ist offline   Mit Zitat antworten
Alt 09-03-2005, 15:08   #4 (permalink)
wez
flash | php | mysql
 
Registriert seit: Jun 2003
Beiträge: 65
Die Variable submov gibt es zweimal, genau einmal in mc_1 und mc_2.
Der Inhalt der Variable ist aber NICHT der Film, sondern nur der Name des Films, also ein String "Test1". Diesen String kannst Du jetzt zur Referenzierung benutzen. Das muss dann wie folgt aussehen.

PHP-Code:
var meinArray = new Array("mc_1""mc_2");
var 
meinArray2 = new Array("Test1""Test2");
for (var 
0i<=1i++) {
    
this[meinArray[i]].submov meinArray2[i];
    
this[meinArray[i]].onRollOver = function() {
        
trace(this);
        
trace(this.submov); // Funktioniert
        
trace(this[this.submov]);
        
this[this.submov]._alpha 0// Funktioniert
    
};

Das heisst Du sprichst mit dem ersten this den Film direkt an, der die onRollOver Funktion enthält. Mit dem Array Operator [] kannst Du nun Elemente im Film ansprechen. Mit this[this.submov] sprichst Du also z.B. "Test1" in mc_1 an. this.submov selbst ist nur ein Sring mit dem Namen des Films. Das wird vielleicht auch durch die zwei trace Anweisungen klarer:
a) trace(this.submov) gibt nur den String: z.B. Test1 zurück
b) trace(this[this.submov]) gibt den vollständigen Pfad zum Film namens this.submov zurück
wez 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 05:00 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele