Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-11-2004, 23:56   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 20
OnRollOver Ereignis bei dynamisch generiertem MC funktioniert nicht

Hallo zusammen,

ich habe folgendes Problem:

ich generiere aus eine DB dynamisch mehrere MC's, die mit einem RollOver- und einem Release-Ereignis belegt werden sollen.
Das Release-Ereignis wird korrekt ausgeführt aber das RollOver reagiert nicht bzw. wird nicht ausgeführt. Was ist daran falsch?

Hier mal der Ausuzug, der in einer Funktion im ersten Bildes vom _root eingebaut ist:

PHP-Code:
        plan.seats["seatgrp_"+seatgrp[loc_sitz]]["seat_"+loc_sitz].attachMovie("mc_circle_fill""circle_fill"2);
        
plan.seats["seatgrp_"+seatgrp[loc_sitz]]["seat_"+loc_sitz].attachMovie("mc_circle""circle"3);
        
this.objColor = new Color(plan.seats["seatgrp_"+seatgrp[loc_sitz]]["seat_"+loc_sitz].circle_fill);
        
this.objColor.setRGB(saalplan.PK[plan.seats["seatgrp_"+seatgrp[loc_sitz]]["seat_"+loc_sitz].pk].color);
        
plan.seats["seatgrp_"+seatgrp[loc_sitz]]["seat_"+loc_sitz].trackAsMenu true;
        
plan.seats["seatgrp_"+seatgrp[loc_sitz]]["seat_"+loc_sitz].onRollOver = function() {
            if (
_global.multiselect_mode) {
                
_global.multiselect[this.sitzid] = 1;
                if (
_global.multiselect_first) {
                    
_global.multiselect_type='add';
                    
_global.multiselect_first false;
                }
                
_root.updateSitzStatus(this.sitzid2);
                
trace('Sitz '+this.sitzid+' hinzugefügt');
                
updateAfterEvent();
            }
        }
        
plan.seats["seatgrp_"+seatgrp[loc_sitz]]["seat_"+loc_sitz].onRelease = function() {
            if (!
_global.multiselect.mode) {
                
_global.multiselect = new array();
                
_global.multiselect[this.sitzid] = 1;
                
trace('Sitz '+this.sitzid+' hinzugefügt');
                
_root.selectSeat();
                
_root.resetWK();
            }
        } 

Geändert von Downy (03-11-2004 um 00:07 Uhr)
Downy ist offline   Mit Zitat antworten
Alt 03-11-2004, 00:26   #2 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Aloa!
Kannst dieses mal Bitte tracen!!
" trace(_global.multiselect_mode);"
vor der if abfrage Biite
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 03-11-2004, 09:20   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 20
Zitat:
Zitat von RustyCake
Aloa!
Kannst dieses mal Bitte tracen!!
" trace(_global.multiselect_mode);"
vor der if abfrage Biite
kann ich mal versuchen!

Hab schon mit dem Debugger dort einen Break gesetzt, doch der springt in den Event-Handler gar nicht erst rein.

Das Flag _global.multiselect_mode wird durch einen Key-Listener bei KeyDown (Strg) auf TRUE und beim KeyUp (Strg) auf FALSE gesetzt. Laut trace in diesen Event-Handlern wird das auch korrekt ausgeführt.
Downy ist offline   Mit Zitat antworten
Alt 03-11-2004, 14:37   #4 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Merkwürdig, eine von den beiden if abfragen hackt wahrscheinlich!!
ActionScript:
  1. plan.seats["seatgrp_"+seatgrp[loc_sitz]]["seat_"+loc_sitz].onRollOver = function() {
  2.             if (_global.multiselect_mode) { // die tracen
  3.             trace("kommt ++multiselect_mode++ die an");
  4.                 _global.multiselect[this.sitzid] = 1;
  5.                 if (_global.multiselect_first) { // und die tracen
  6.                 trace("kommt ++multiselect_first++die an");
  7.                     _global.multiselect_type='add';
  8.                     _global.multiselect_first = false;
  9.                 }
  10.                 _root.updateSitzStatus(this.sitzid, 2);
  11.                 trace('Sitz '+this.sitzid+' hinzugefügt');
  12.                 updateAfterEvent();
  13.             }
  14.         }
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 03-11-2004, 23:29   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 20
Zitat:
Zitat von RustyCake
Merkwürdig, eine von den beiden if abfragen hackt wahrscheinlich!!
ActionScript:
  1. plan.seats["seatgrp_"+seatgrp[loc_sitz]]["seat_"+loc_sitz].onRollOver = function() {
  2.             if (_global.multiselect_mode) { // die tracen
  3.             trace("kommt ++multiselect_mode++ die an");
  4.                 _global.multiselect[this.sitzid] = 1;
  5.                 if (_global.multiselect_first) { // und die tracen
  6.                 trace("kommt ++multiselect_first++die an");
  7.                     _global.multiselect_type='add';
  8.                     _global.multiselect_first = false;
  9.                 }
  10.                 _root.updateSitzStatus(this.sitzid, 2);
  11.                 trace('Sitz '+this.sitzid+' hinzugefügt');
  12.                 updateAfterEvent();
  13.             }
  14.         }
ich hab mal vor dem ersten if ein trace eingefügt, aber wie ich schon sagte, das Event wird nicht ausgeführt, warum nicht?
Liegt das etwa an meiner Flash Version, ich hab mal noch gehört, dass MX etwas buggy ist? Kann das der grund sein?
Downy ist offline   Mit Zitat antworten
Alt 04-11-2004, 18:22   #6 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Halt mal die "strg-taste" gedrückt und teste den rollover!!
Und einmal ist _global.multiselect_mode (rollOver) mit unterstrich, und einmal mit Punkt geschrieben!! _global.multiselect.mode (onRelease)
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"

Geändert von RustyCake (04-11-2004 um 18:25 Uhr)
RustyCake ist offline   Mit Zitat antworten
Alt 04-11-2004, 19:37   #7 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 20
Zitat:
Zitat von RustyCake
Halt mal die "strg-taste" gedrückt und teste den rollover!!
Und einmal ist _global.multiselect_mode (rollOver) mit unterstrich, und einmal mit Punkt geschrieben!! _global.multiselect.mode (onRelease)
hab ich getestet, wird aber nicht ausgelöst.
das mit dem Punkt ist natürlich ein Tippfehler _global.multiselect_mode ist richtig, betrifft aber nicht den RollOver-Handel.
Downy ist offline   Mit Zitat antworten
Alt 04-11-2004, 19:41   #8 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
kann ich mal den keylistener sehen Bitte, habs hier nachgebaut und des kamm schon an!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 04-11-2004, 19:48   #9 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 20
Zitat:
Zitat von RustyCake
kann ich mal den keylistener sehen Bitte, habs hier nachgebaut und des kamm schon an!
PHP-Code:
             keyListener = new Object(); 
    
keyListener.onKeyDown = function() { 
        var 
code Key.getCode(); 
        if (
code == 17) {
             
_global.multiselect_mode true;
             
_global.multiselect_first true;
               
_global.multiselect = new array();
             
_root.SetStatusText('Multiselect Mode ON');        
        }
    }
    
keylistener.onKeyUp = function() {
        var 
code Key.getCode();
        if (
code == 17) {
              
_global.multiselect_mode false;
              
_root.selectSeat();
            
_root.resetWK();
              
_root.SetStatusText('Multiselect Mode OFF');
        }
    }
    
Key.addListener(keyListener); 
    
// zum testen "Film testen", dann unter "Steuerung", "Tastenkombination deaktivieren! 
Downy ist offline   Mit Zitat antworten
Alt 04-11-2004, 19:51   #10 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 20
Hast du auch mal mehrere Objekte mit dem RollOver-Event erzeugt?
Welche Flash Version hast du?

Der Code des Listeners ist auch direkt im OnLoad des ersten Bildes drin. Der funktioniert wie gesagt ja auch einwandfrei

Geändert von Downy (04-11-2004 um 19:53 Uhr)
Downy ist offline   Mit Zitat antworten
Alt 04-11-2004, 19:57   #11 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Nein hab nicht mehrere Objecte erzeugt geht ja darum das die Variable nicht im RollOver erkannt wird dachte ich!!
ich benutze eine upgedatete MX version!!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 04-11-2004, 20:00   #12 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Ich kann Ja schlecht des ganze nachbauen!!
ActionScript:
  1. _global.multiselect_mode;
  2. var keyObj = new Object();
  3. keyObj.onKeyDown = function() {
  4.     if (Key.getCode() == 17) {
  5.         trace("true");
  6.         _global.multiselect_mode = true;
  7.     }
  8. };
  9. keyObj.onKeyUp = function() {
  10.     if (Key.getCode() == 17) {
  11.         trace("false");
  12.         _global.multiselect_mode = false;
  13.     }
  14. };
  15. Key.addListener(keyObj);
  16. test_btn.onRollOver = function() {
  17.     if (_global.multiselect_mode) {
  18.         trace("_global.multiselect_mode=true");
  19.     }
  20. };
  21. test_btn.onRelease = function() {
  22.     if (!_global.multiselect_mode) {
  23.         trace("_global.multiselect_mode=false");
  24.     }
  25. };
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 07-11-2004, 11:00   #13 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 20
Zitat:
Zitat von RustyCake
Nein hab nicht mehrere Objecte erzeugt geht ja darum das die Variable nicht im RollOver erkannt wird dachte ich!!
ich benutze eine upgedatete MX version!!
Die Variable wird schoin richtig gesetzt. Das Problem ist es, dass das Event erst gar nicht ausgelöst wird, ein trace vor der 1. If Abfrage bestätigt es, es kommt keine Ausgabe, somit kann natürlich auch die darauffolgende Anweisung nicht ausgeführt werden.
Downy ist offline   Mit Zitat antworten
Alt 07-11-2004, 23:31   #14 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Kann mich nur wiederholen, ist es vorgesehen das man die "strg-taste" gedrückt hält beim rollover?
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 10-11-2004, 19:17   #15 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 20
Zitat:
Zitat von RustyCake
Kann mich nur wiederholen, ist es vorgesehen das man die "strg-taste" gedrückt hält beim rollover?
Ja die Strg-Taste soll gedrückt bleiben und durch das überfahren der Objekte sollen diese so zusagen markiert werden. Geht das bei dir denn? Kann es vielleicht daran liegen, dass bei vielen (ca. 500 Objekten) die den RollOver erhalten soll das nicht mehr geht (zu viel für MX)
Downy 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 00:01 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele