| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Gast
Beiträge: n/a
| Key.Listener | focus() | ESC | Mac OS / Win
Hi, auf dieser Seite habe ich im Flashfilm eine Funktion definiert, welche beim Gedrückthalten der ESCAPE Taste die Farben durcheinander haut und beim Loslassen wieder die Ursprungsfarben herstellt. Ich habe auch mittels onLoad Handlers im Body Tag den Focus auf die swf gesetzt. Wenn ihr es selbst einmal testen wollt, einfach die o.g. URL aufrufen, dann, wenn der Lauftext erscheint einfach oben Links auf den aktiven Button klicken. Ihr gelangt dann auf die Mainsite (main.swf), wo dann die besagte Funktion definiert ist. Unter Mac OS X 10.3.4 mit Safari und Firefox funktioniert es, hingegen unter Windows 98, XP mit IE, Firefox nicht. Hier der wesentliche Auszug aus dem Actionscript PHP-Code: Woran liegt das? Gibt es reservierte Tasten, die man nicht benutzen darf? Ich habe für diese Seite ein Spiel programmiert, welches fast fertig ist. Dieses wird mittels den Pfeiltasten gesteuert… gleiches Problem. Liebe Grüße Yves |
|
| | #3 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
ich hab keine dose. vielleicht wird unter windows (bzw. den browsern in windows) das ESCAPE generell für etwas anderes benützt??? und deshalb erst garnicht an das swf weiter gereicht? nimm halt eine andere taste. z.b. die "1".
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #6 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
"..was ist dann mit dem Kontaktformular.." ja woher soll ich das wissen. ich kenne doch deine 10.000 internetseiten nicht und auch nicht, was du vorhast. was für einen sinn macht es, auf einer formularseite, wenn es "..beim Gedrückthalten der ESCAPE Taste die Farben durcheinander haut und beim Loslassen wieder die Ursprungsfarben herstellt.." ??? das eröffnet ganz neue möglichkeiten bei der formularausfüllung :-))) dein eigentliches problem ging aber nicht um eine formularseite (die du erst jetzt erwähnt hast), sondern um die nichterkennung von tasten. das mit der 1 war ja nur ein beispiel. du könntest auch die 5 nehmen ;-) ich denke aber, das problem ist garkein tastenproblem. sonnst müsste es ja jeder haben. weltraumpfleger hat's zb nicht. die tastenkodes werden nur dann zum swf geleitet, wenn das durch einmaliges anklicken aktiv gemacht wurde - sonst nicht. kann ja sein, das diese onLoad-geschichte garnicht funktioniert? (onLoad ist schon klar. aber kommt dieses event wirklich erst, nachdem das swf komplett geladen ist? das event dürfte dann zb bei gestriemten sounds recht spät kommen - muss ich echt mal ausprobieren.) und versuch mal: this.mainobject.focus(); document sollte zwar, ist aber nicht immer verfügbar. und lass mal probeweise das document.write weg. eventuell wird dadurch das mainobject erst beim "nächsten mal" bekannt. nachschlag: und wenn du bei der html-seite auf den weissen rand klickst, dann ist dein swf auch nicht mehr im focus.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (09-08-2004 um 04:24 Uhr) |
| | |
| | #7 (permalink) | ||||||||
| Gast
Beiträge: n/a
|
Hi… gestern abend war wohl aufgrund der Hitze Freiduschen mit Peter Lustig ;) Zitat:
Jetzt sag nich: „Und was, wenn er kein Telefon hat?“ ;) Zitat:
Zitat:
Zitat:
Ich vermute, das es ein Browserspezifisches Problem mit der „Tastenweitergabe“ ist. Zitat:
Zitat:
Zitat:
Zitat:
Yves | ||||||||
|
| | #8 (permalink) |
| Gast
Beiträge: n/a
|
Mal vielleicht ganz interessant… Firefox Javascript Console sagt folgendes: Error: this.mainobject has no properties oder Error: window.document.mainobject.focus is not a function oder Error: document.mainobject.focus is not a function Weiß jemand warum? Als Func () ist ja ja korrekt definiert. Yves |
|
| | #9 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
"..WIN IE die swf anklicke, funktioniert es nicht.." tja :-( hat nicht Peter Lustig (alias fenster bill) das windows gemacht - beim Freiduschen? bei WIN IE, alle tasten oder nur bestimmte? da es ja "nur" eine spass-funktion ist: teste zb auf ctrl-1 oder sonst eine tastenkombination. das wird ja wohl keiner in ein formular eingeben. oder erkenne eine wort. zb nach der eingabe von "409coffeemaker" geht das geflimmere für 5 selkunden los. - ist nur ein vorschlag. "..Firefox Javascript Console sagt folgendes: Error:.." alle browser sind grosser misst und praktisch für umsonst. bei wem soll man sich da beschweren? ich sagte ja schon, das document z.b. nicht immer existiert. ähnlich: in einem frameset ist top nicht gleich top. da benütze ich lieber z.b. parent.parent.parent.irgendwas ich benütze übrigens mit vorliebe die function von MM: versuchs mal damit: var vObj=MM_findObj('mainobject'); Code: function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #10 (permalink) | |||||
| Gast
Beiträge: n/a
| Zitat:
Hab leider(?) keine Dose da zum testen… Zitat:
Zitat:
![]() Zitat:
Wichtig wäre jetzt, ein Script zu verfassen, das wirklich funktioniert… sonst ist der Fehler irgendwie „moving target“… Zitat:
PHP-Code: Dann wäre d=document. Den Teil mit parent.frames verstehe ich nicht. Irgendwie wird da etwas mit Forms, Frames, Layers gemacht… eine kurze Erklärung wäre nett. Liebe Grüße Yves (…und danke für deine Mühe!) | |||||
|
| | #11 (permalink) |
| Gast
Beiträge: n/a
|
Hi, ich hab das mal gerade einen Kollegen testen lassen… auch mit deinem Script. Funktioniert ebenfalls nicht. Bitte teste nun nochmal die Seite unter dem o.g. Link, ich habe nun für Escape mal den Tastaturcode benutzt. Wenn ich den Listener quasi für 'a' definiere, klappt es. Da man eh einmal in die swf klicken kann, um auf die Mainpage zu gelangen, vernachlässige ich jetzt erstmal die Focus() Sache, bis ich einen überall funktionierenden Keycode habe. Es liegt nun als an Escape… und dessen Ansprache im Browser. An alle anderen… bitte testet nochmal und gebt kurzes Feedback… Was ich bei Tastenkombis bemerkt habe… da kommt es ja auch wieder auf die Reihenfolge an… shift+ctrl != ctrl+shift… Yves |
|
| | #13 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
"..ich benütze übrigens mit vorliebe die function von MM:.." MM == MacroMedia. das ist nicht meine!!! den code hängt zb dreamwaver drann, wenn man behaviors benützt. und der code ist chaotisch == nicht zum erklären gedacht (dafür schön kompakt). da ist halt alles drinn: .all == alte IE .getElementById == neuere browser mit DOM der rest == NC und der name wird überall gesucht. in layers in forms usw. -deshalb müssen auch alle namen unterschiedlich sein- und in allen frames hoch und runter. das ist dann der rekursive aufruf: x=MM_findObj(n,d.layers[i].document); der den 2. parameter benützt. functioniert halt mit allem (soweit ich das kenne). allerdings, wenn ich mir das jetzt so betrachte: object bzw. embed ist nicht dabei. lese aber, das die mit getElementById erfasst werden!? dann lese ich noch (betrifft zwar textfelder, aber was solls): "..wenden Sie die Methoden focus() und select() nacheinander .. über die Methode setTimeout() auf. Auf diese Weise können Sie gewährleisten, dass IE/Windows die Anweisungen in der richtigen Reihenfolge ausführt. ." ----------------- du könntest zb in javascript ein onKeyPress einbauen, um zu testen, wo das ESC verlohren geht. schon im browser oder erst im SWF. ----------------- "..Bitte teste nun nochmal die Seite.." wie schon weiter oben geschrieben: "ich hab keine dose." und Developement.zip => dekomprimierung fehlgeschlagen (mac stuffix deluxe 8.0.2)
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (10-08-2004 um 02:57 Uhr) |
| | |
| | #14 (permalink) | |||
| Gast
Beiträge: n/a
|
Moin Seib, Zitat:
Zitat:
Zitat:
Liebe Grüße Yves Geändert von 409coffeemaker (10-08-2004 um 10:31 Uhr) | |||
|
| | #15 (permalink) |
| Gast
Beiträge: n/a
|
So gehts nicht… PHP-Code: Yves |
|
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |