Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-10-2009, 11:47   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 20
Problem mit onPress und for-schleife

Hallo Gemeinde

Ich habe folgenden Code:

PHP-Code:
for (var i:Number 0i<ni++) {
        
_root.inhalt_mc.inhalt_referenzen.createEmptyMovieClip("mc"+i_root.inhalt_mc.inhalt_referenzen.getNextHighestDepth()); 
        
_root.inhalt_mc.inhalt_referenzen["mc"+i].createTextField("textfeld"this.getNextHighestDepth(), 0text_y20020);
        
_root.inhalt_mc.inhalt_referenzen["mc"+i].textfeld.text nme[i];
        [
"mc"+i].textfeld.text);
        
_root.inhalt_mc.inhalt_referenzen["mc"+i].textfeld.setTextFormat(format_ref_liste);
        
_root.inhalt_mc.inhalt_referenzen["mc"+i].textfeld.selectable false
        
        
text_y+=17;
        
        
_root.inhalt_mc.inhalt_referenzen["mc"+i].onRollOver = function() {
            
this.textfeld.setNewTextFormat(format_ref_liste_over);
            
this.textfeld.text this.textfeld.text;
        }
        
_root.inhalt_mc.inhalt_referenzen["mc"+i].onRollOut = function() {
            
this.textfeld.setNewTextFormat(format_ref_liste);
            
this.textfeld.text this.textfeld.text;
        }
        
//
        //Hier wirds spannend
        //
        
_root.inhalt_mc.inhalt_referenzen["mc"+i].onPress = function() {
            var 
anzeige src[i];
            
trace(anzeige);
        }
    } 
Beim Drücken einer der Buttons wird allerding undefined ausgegeben obwohl src[0], src[1], usw. definiert ist. Wo liegt mein Fehler

MfG Magic
xXx_Magic_xXx ist offline   Mit Zitat antworten
Alt 12-10-2009, 12:14   #2 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
trace dir mal "i" aus ... dann wirst du von selbst auf den Fehler kommen.
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 12-10-2009, 12:55   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 20
Naja ist mir auch schon aufgefallen aber wenn "i" die richtige zahl wäre würds ned gehen es würd Source3, Source3, Source3 ausgeben statt Source1, Source2, Source3

EDIT: "i" wurde jetzt als globale-Variabel definiert und bei diesem Script:
PHP-Code:
_root.inhalt_mc.inhalt_referenzen["mc"+i].onPress = function() {
            
trace(i);
            var 
anzeige src[i];
            
trace(anzeige);
        } 
erhalte ich folgende ausgabe:
3
undefined

i ist eins zu hoch aber mal abgesehen davon wie ichs jetzt habe erreiche ich mein Ziel ned. Ich will das jeder MovieClip names mc1, mc2, ... die verlinkung auf die jeweilige source hat also mc1 -> source:1 mc2 => source:2 usw. wie krieg ich das hin?

Geändert von xXx_Magic_xXx (12-10-2009 um 13:03 Uhr)
xXx_Magic_xXx ist offline   Mit Zitat antworten
Alt 12-10-2009, 13:13   #4 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
du kannst i so nicht nutzen. Nachdem eine for-Schleife durchgelaufen ist hat i immer den letzten Wert der gesetzt wurde, in deinem Fall scheinbar 3.

Wenn du nun diese i in einem onPress nutzt wird dort auch immer der letzte für i gestzte Wert genutzt.

Du musst deine MovieClips dazu bringen sie den i-Wert zu merken:
(btw.: Sowas wie "_root.inhalt_mc.inhalt_referenzen["mc"+i]" würde ich mir in einer Variablen speichern, damit sparst du dir jede Menge tipparbeit.

PHP-Code:
for (var i:Number 0i<ni++) { 
  
// ...
  
var mc _root.inhalt_mc.inhalt_referenzen["mc"+i]

  
mc.i;

  
mc.onPress = function() { 
    
trace(this.i);
    
trace(src[this.i]);
  }
  
// ...

__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 12-10-2009, 13:22   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 20
Danke so wirds funktionieren.

Hm ne irgendwas an der variabel ist flasch wenn ich die variabel benutze so wie dus geschrieben hast, dann werden mir die movieclips ned mehr erstellt.

Geändert von xXx_Magic_xXx (12-10-2009 um 13:39 Uhr)
xXx_Magic_xXx ist offline   Mit Zitat antworten
Alt 12-10-2009, 13:45   #6 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
wie? das geht nicht?

PHP-Code:
var mc _root.inhalt_mc.inhalt_referenzen.createEmptyMovieClip("mc"+i_root.inhalt_mc.inhalt_referenzen.getNextHighestDepth());

mc.i;

mc.onPress = function() {
  
trace(this.i);

__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 12-10-2009, 13:51   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2009
Beiträge: 20
Also du hast da jetzt ein ducheinander mit den variabeln(Du hast zwei verschiedene vars gepostet). Ich habe jetzt folgenden code und damit werden die Moviceclips nicht mehr erstellt:
PHP-Code:
function referenzenliste(anzahl) {
    var 
n:Number anzahl
    var 
text_y:Number 20;
    var 
mc _root.inhalt_mc.inhalt_referenzen["mc"+i];
    var 
format_ref_liste:TextFormat = new TextFormat();
    
format_ref_liste.font "Verdana";
    
format_ref_liste.size 11;
    
format_ref_liste.color 0x000000;
    var 
format_ref_liste_over:TextFormat = new TextFormat();
    
format_ref_liste_over.font "Verdana";
    
format_ref_liste_over.size 11;
    
format_ref_liste_over.color 0x0084ff;
    
_global.0;
    for (
i:Number 0i<ni++) {
        
mc.i;
        
_root.inhalt_mc.inhalt_referenzen.createEmptyMovieClip("mc"+i_root.inhalt_mc.inhalt_referenzen.getNextHighestDepth()); 
        
mc.createTextField("textfeld"this.getNextHighestDepth(), 0text_y20020);
        
mc.textfeld.text nme[i];
        
//trace(mc.textfeld.text);
        
mc.textfeld.setTextFormat(format_ref_liste);
        
mc.textfeld.selectable false
        
//trace(text_y);
        
text_y+=17;
        
//onpress etc
        
mc.onRollOver = function() {
            
this.textfeld.setNewTextFormat(format_ref_liste_over);
            
this.textfeld.text this.textfeld.text;
        }
        
mc.onRollOut = function() {
            
this.textfeld.setNewTextFormat(format_ref_liste);
            
this.textfeld.text this.textfeld.text;
        }
        
mc.onPress = function() {
            
trace(this.i); 
            
trace(src[this.i]);
        }
    }

xXx_Magic_xXx ist offline   Mit Zitat antworten
Alt 12-10-2009, 13:56   #8 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
naja, ich poste dir ja keine copy&paste lösungen, ich geb nur Hinweise ... auf dein Script übertragen musst du das schon selbst, und da gehört auch ein bisschen Nachdenken mit dazu ... was du da gemacht hast ist halt falsch (da hätte man aber auch selbst drauf kommen können).

PHP-Code:
function referenzenliste(anzahl) {
    var 
n:Number anzahl
    var 
text_y:Number 20;
    var 
format_ref_liste:TextFormat = new TextFormat();
    
format_ref_liste.font "Verdana";
    
format_ref_liste.size 11;
    
format_ref_liste.color 0x000000;
    var 
format_ref_liste_over:TextFormat = new TextFormat();
    
format_ref_liste_over.font "Verdana";
    
format_ref_liste_over.size 11;
    
format_ref_liste_over.color 0x0084ff;
    
_global.0;
    for (
i:Number 0i<ni++) {
        var 
mc _root.inhalt_mc.inhalt_referenzen.createEmptyMovieClip("mc"+i_root.inhalt_mc.inhalt_referenzen.getNextHighestDepth()); 
        
mc.createTextField("textfeld"this.getNextHighestDepth(), 0text_y20020);
        
mc.textfeld.text nme[i];
        
//trace(mc.textfeld.text);
        
mc.textfeld.setTextFormat(format_ref_liste);
        
mc.textfeld.selectable false
        
//trace(text_y);
        
text_y+=17;
        
//onpress etc

        
mc.i;

        
mc.onRollOver = function() {
            
this.textfeld.setNewTextFormat(format_ref_liste_over);
            
this.textfeld.text this.textfeld.text;
        }
        
mc.onRollOut = function() {
            
this.textfeld.setNewTextFormat(format_ref_liste);
            
this.textfeld.text this.textfeld.text;
        }
        
mc.onPress = function() {
            
trace(this.i); 
            
trace(src[this.i]);
        }
    }

__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
for-Schleife unterbrechen entsprechend onPress Befehl litL1 Flash Einsteiger 5 13-03-2007 10:07
createmovieclip, onload und onpress in einer schleife crios Flash 8 9 01-12-2006 22:59
mc.onPress = function(){xx} in FOR-Schleife !??! Zinotidi ActionScript 1 3 12-01-2006 15:59
onPress in for Schleife versteh ich nicht Orphelina Flash MX 2004 2 02-09-2005 17:14
for schleife attachMovie und onPress k3nnymc71 ActionScript 1 5 23-11-2003 17:59


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele