• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-02-2010, 12:35   #1 (permalink)
Artcore-GFX
 
Benutzerbild von getflashed
 
Registriert seit: Nov 2008
Ort: Hamburg
Beiträge: 44
Question MouseEvent auf Button als KeyEvent ausgeben???

Mahlzeit an alle Flasher,
Ich begebe mich gerade in die für mich noch Bömischen Wälder des AS3 da ich gehört habe das die für mich relevante Funktion aber nur damit möglich ist und ich natürlich auch gerne die neuen tools benutze wie 3D und Bone-tool muss ich mich daran wagen.

Und zwar versuche ich in einer Interaktiven Präsentation an einem Touchscreen ein Event ein zu bauen welches ein anderes Gerät ansteuert das über USB angeschlossen ist, die Kommunikation zu der Externen Hardware wird aber per VBS gelöst.

Nun möchte ich nur dem VBS bescheid geben wann das Event ablaufen soll, das reagiert auf Tastendruck.
Da es aber verschiedene Events gibt kann ich nicht auf Mausklick reagieren,
ein Problem mit Touchscreen...
Somit versuche ich über einen Mausklick auf einen Button ein vorgegaukeltes Keyevent zu erzeugen welches dem VBS bsp.weise sagt das die Taste "a" (code 65) gedrückt wurde.

Meine Idee war jetzt
PHP-Code:
btn.addEventListener(MouseEvent.CLICKsetKeyDown);

function 
setKeyDown(e:KeyboardEvent) {
    
trace("keyCode" 65;)

was mir im AS3 natürlich direkt fehler ausgibt...

Hat jemand von euch eine Idee oder eine Lösung parat?
Habe schon viel gesucht aber nichts zu genau dem Thema gefunden

PS: das aktivieren der VBS per fscommand ist nicht möglich, da ich keinen Projektor verwenden kann, es läuft über eine Display-Engine die Flashinhalte abspielen kann.
getflashed ist offline   Mit Zitat antworten
Alt 18-02-2010, 15:10   #2 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.184
so vielleicht?
ActionScript:
  1. btn.charCode = '';
  2. btn.keyCode = 65;
  3.  
  4. btn.addEventListener(MouseEvent.CLICK, setKeyDown);
  5.  
  6. function setKeyDown(e:MouseEvent) {
  7. dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN, true, false, e.target.charCode, e.target.keyCode));
  8.     trace("keyCode" + e.target.keyCode);
  9. }

P.S.: dein trace() sollte dir so auch einen Fehler ausgeben...
__________________
EDV = Ende Der Vernunft

Geändert von hmpf (18-02-2010 um 15:11 Uhr)
hmpf ist offline   Mit Zitat antworten
Alt 18-02-2010, 16:05   #3 (permalink)
Artcore-GFX
 
Benutzerbild von getflashed
 
Registriert seit: Nov 2008
Ort: Hamburg
Beiträge: 44
Hallo hmpf,
habs eben mal probiert, sieht schon sehr logisch aus mit dem "new KeyEvent" aber irgendwie hat er noch Probleme mit
*1119: Zugriff auf eine möglicherweise nicht definierte Eigenschaft charCode über einen Verweis mit statischem Typ flash.display:SimpleButton*
dasselbe bei dem keyCode die Zeile darunter.
Dabei zählt der Wert dahinter doch als definition oder nicht? *confused*

Werde da nochmal nachhaken, aber schonmal vielen Dank für den guten Ansatz ;>
getflashed ist offline   Mit Zitat antworten
Alt 18-02-2010, 16:25   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 546
Dann müsstest du aber auch eine Fehlermeldung in der ersten Zeile bekommen: ReferenceError: Error #1056: Eigenschaft charCode in flash.display.SimpleButton kann nicht erstellt werden.

Das Beispiel funktioniert nämlich nur, wenn in deiner Button-Klasse die beiden Eigenschaften charCode und keyCode existieren bzw. dynamisch erstellt werden dürfen. Das ist bei SimpleButton nicht der Fall. Also entweder MovieClip für die Buttons verwenden (ist dynamisch) oder besser (sauberer) eine eigene Klasse von SimpleButton ableiten.
joeydee ist offline   Mit Zitat antworten
Alt 18-02-2010, 16:31   #5 (permalink)
lebt in stereo
 
Benutzerbild von figure8
 
Registriert seit: Mar 2008
Ort: karlsruhe
Beiträge: 1.093
so aber:

ActionScript:
  1. btn.charCode = '';
  2. btn.keyCode = 65;
  3.  
  4. btn.addEventListener(MouseEvent.CLICK, setKeyDown);
  5.  
  6. function setKeyDown(event:MouseEvent) {
  7.     var keyEvent:KeyboardEvent = new KeyboardEvent(KeyboardEvent.KEY_DOWN, true, false, event.target.charCode, event.target.charCode);
  8.     event.target.addEventListener(KeyboardEvent.KEY_DOWN, keyHandler);
  9.    
  10.     event.target.dispatchEvent(keyEvent);
  11. }
  12.  
  13. function keyHandler(event:KeyboardEvent):void {
  14.     event.target.removeEventListener(KeyboardEvent.KEY_DOWN, keyHandler);
  15.     trace("keyCode: " + event.target.keyCode); // 65
  16. }
__________________
* Flash-JunkieMusiker & Grafiker

# Marvin Blase
# Speaker, Author, Silly Billy.
# @beautifycode
figure8 ist offline   Mit Zitat antworten
Alt 18-02-2010, 17:06   #6 (permalink)
Artcore-GFX
 
Benutzerbild von getflashed
 
Registriert seit: Nov 2008
Ort: Hamburg
Beiträge: 44
1tens: Danke an Jaydee für den Tipp mit den Buttons, ist wohl doch mehr anders mit AS3 geworden als ich dachte. Benutze nun erstmal mc's

2tens: figure8, dein Code läuft Perfekt. komme leider morgen erst dazu es im kompletten Touchsystem zu testen aber hier Lokal läuft es schonmal.

Gebe euch morgen Meldung ob es auch im Digital-Signage system läuft... *spannung*

aber kann schonmal beruhigter schlafen heute *1000 Dank*
getflashed ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
displayengine, event, keyboard emulation, mouseevent, touchscreen

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
Joystick to Keyevent derRaab Zusatzprodukte 35 22-10-2010 09:36
KeyEvent künstlich auslösen? flash_newbie ActionScript 3 4 18-08-2009 12:28
Button mit MouseEvent Kulli ActionScript 3 4 18-09-2007 17:04
MouseEvent.CLICK & MouseEvent.DOUBLE_CLICK monroe ActionScript 3 0 16-07-2007 16:33
Kann ein Button ein Keyevent zurückgeben? Optischer_Flash ActionScript 1 10 07-03-2005 16:51


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

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


Copyright ©1999 – 2012 Marc Thiele