Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-02-2011, 17:07   #1 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Speicher saugt sich voll wegen Tastaturabfrage

Hi Leute,
habe einen mc mit 2 Frames.
Der 2. Frame ist leer.
Auf dem 1. Frame habe ich folgenden As.:

PHP-Code:
var dateX22 = new Date();
var 
dayX dateX22.getDay();
var 
dateX22h=dateX22.getHours();
var 
dateX22m=dateX22.getMinutes();
var 
dateX22s=dateX22.getSeconds();
_level0.jetztstunde=dateX22h;
_level0.jetztminute=dateX22m;
_level0.jetztsekunde=dateX22s;


keyListener = new Object(); 
keyListener.onKeyDown = function() { 
    if (
Key.getCode() == 123) {// 123 ist [F12]
       
        
_level0.eingabe.gotoAndPlay(2); 
    } 
    if (
Key.getCode() == 13) {// 13 ist [Enter]

switch (_level0.eingabe.eingabetext.text) {
case 
"SYSneustart" :
  
_level0.eingabe.gotoAndStop(1);
  
_level0.aktualijetzt=1;
  
_level0.gotoAndPlay(_level0.rueckposition);
break;
case 
"DMSkundennummer" :
  
_level0.kdnranz.gotoAndStop(2);
  
_level0.eingabe.gotoAndStop(1)
break;
case 
"DMSkddaten" :
  
_level0.kdnranz.gotoAndStop(3);
  
_level0.eingabe.gotoAndStop(1)
break;
case 
"DMSwbdaten" :
  
_level0.kdnranz.gotoAndStop(4);
  
_level0.eingabe.gotoAndStop(1)
break;
case 
"DMSneustart um" :
  
_level0.kdnranz.gotoAndStop(5);
  
_level0.eingabe.gotoAndStop(1)
break;
case 
"DMSkundenrechte" :
  
_level0.kdnranz.gotoAndStop(6);
  
_level0.eingabe.gotoAndStop(1)
break;

default:
  
_level0.eingabe.gotoAndStop(1)
break;
}}}
        

if(
_level0.aktualisierungsstunde==_level0.jetztstunde && _level0.startminute== _level0.jetztminute)
{
_level0.aktualijetzt=1}
else{
Key.addListener(keyListener)} 
Der Speicher saugt sich extrem schnell voll und ich frage mich, bzw. Euch
ob diese Art der Umsetzung falsch ist und wenn ja,
wie ich eine ständige Tastaturabfrage umsetzen kann, ohne den Speicher zu belasten.

Über Tipps würde ich mich sehr freuen.
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 20-02-2011, 17:15   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Herzenslicht Beitrag anzeigen
Hi Leute,
habe einen mc mit 2 Frames.
Der 2. Frame ist leer.
Auf dem 1. Frame habe ich folgenden As.:
Darf man fragen, wieso Du mit zwei Frames arbeitest?

Da ich in Deinem Code nirgendwo ein stop finde, loopt die Zeiteleiste und das Script wird immer wieder ausgeführt?! D.h. in einer Sekunde werden rund ein dutzend Key-Listener registriert. Kein Wunder das Flash da in die Knie geht...
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 20-02-2011, 17:18   #3 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Hi Martin,
vielen Dank, dass Du Dich auch diesem Problem annimmst.
Ja, ich loop die Abfrage.
Ist also falsch, wie ich Dich verstehe.

Wie aber bleibt die Abfrage stets aktiv, wenn nicht durch loop ?
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 20-02-2011, 17:40   #4 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Habe nun den As auf den 1. Frame der Timeline gelegt.
PHP-Code:
keyListener = new Object(); 
keyListener.onKeyDown = function() { 
    if (
Key.getCode() == 123) {// 123 ist [F12]
       
        
_level0.eingabe.gotoAndPlay(2); 
    } 
    if (
Key.getCode() == 13) {// 13 ist [Enter]

switch (_level0.eingabe.eingabetext.text) {
case 
"SYSneustart" :
  
_level0.eingabe.gotoAndStop(1);
  
_level0.aktualijetzt=1;
  
_level0.gotoAndPlay(_level0.rueckposition);
break;
case 
"DMSkundennummer" :
  
_level0.kdnranz.gotoAndStop(2);
  
_level0.eingabe.gotoAndStop(1)
break;
case 
"DMSkddaten" :
  
_level0.kdnranz.gotoAndStop(3);
  
_level0.eingabe.gotoAndStop(1)
break;
case 
"DMSwbdaten" :
  
_level0.kdnranz.gotoAndStop(4);
  
_level0.eingabe.gotoAndStop(1)
break;
case 
"DMSneustart um" :
  
_level0.kdnranz.gotoAndStop(5);
  
_level0.eingabe.gotoAndStop(1)
break;
case 
"DMSkundenrechte" :
  
_level0.kdnranz.gotoAndStop(6);
  
_level0.eingabe.gotoAndStop(1)
break;

default:
  
_level0.eingabe.gotoAndStop(1)
break;
}}}
        

Key.addListener(keyListener
Und siehe da, es funzt auch so.
Da ich jedoch öffter mal ab Frame 1 neu starte, würde das Problem doch erneut auftreten.
Kann man "Key-Listener" zwischendurch löschen, damit dieser Fehler nicht erneut auftritt ?
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 20-02-2011, 18:49   #5 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von Herzenslicht Beitrag anzeigen
Wie aber bleibt die Abfrage stets aktiv, wenn nicht durch loop ?
Listener sind ja grad dazu da, dass man nicht dauernd nachschauen muss, ob sich was geändert hat.

Zitat:
Zitat von Herzenslicht Beitrag anzeigen
Kann man "Key-Listener" zwischendurch löschen, damit dieser Fehler nicht erneut auftritt ?
Dafür gibt es die Methode Key.removeListener. Aber eigentlich macht es wenig Sinn, den Listener zu löschen, nur um dann wieder genau den Gleichen zu registrieren. Bau doch einfach eine if-Abfrage um Deinen Code die prüft, ob schon ein Listener-Objekt erzeugt wurde:
PHP-Code:
if(keyListener){
  
// Dein Code

__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 20-02-2011, 23:09   #6 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Das ist es, ja klar.
Vielen Dank.
__________________
_________________
Liebe Grüße
Herzenslicht 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
Speicher läuft voll hansderzweite ActionScript 2 2 22-01-2009 11:40
Speicher läuft voll ml0 ActionScript 1 0 01-08-2007 09:36
Speicher läuft voll kiwi66 Flash MX 2004 1 10-12-2004 21:20
ekg haut mir den speicher voll... sina ActionScript 1 10 01-10-2002 09:12
speicher lädt sich voll????? phil Flash 4 und Flash 5 4 04-09-2001 09:50


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele