crusy.net

  • home.
  • photos.
  • about.

 

14
Dec

wmode transparent: @-Bug

By crusy|Coding, Flash|Be the first to comment!

Der altbekannte Bug, kein @-Zeichen eingeben zu können, wenn der wmode auf transparent steht, sollte in Flash-Player 10.1 behoben sein. Ist er nicht. Zumindest nicht in Chrome. Man nutze diesen Workaround:

Wenn wir auf Windows sind (denn nur hier tritt der Bug auf), erlaube das @-Zeichen nicht als regulären Input. Denn in einigen Browsern tritt der Bug nicht auf, und in diesen Browsern wollen wir keine doppelten @-Zeichen ;-) Außerdem verbieten wir q und Q, denn leider leider kann man auf dem KeyboardEvent kein preventDefault() aufrufen. Wir hätten dann “@q”, bzw “@Q”, statt nur “@”.

if( Capabilities.os.toLowerCase().indexOf(‘windows’) != -1 )
{
_tf.restrict = “^[@qQ]“;
_tf.addEventListener( KeyboardEvent.KEY_DOWN, _onWindowsKeyDown );
}

Stattdessen prüfen wir jedes eingegebene Zeichen mit dem folgenden Listener auf @/q/Q (KeyCode 81 – unter OS X ist der Code ein anderer). Hier ist zu beachten, dass der Cursor nicht am Ende des Textes stehen muss! Und nicht nur das: Es kann auch Text markiert sein, wenn man das @-Zeichen eingibt. Deshalb die etwas aufwendige Bestimmung des Bereiches, der durch @ ersetzt werden muss. Zum Schluss setzten wir den Cursor hinter das frisch eingegebene Zeichen.

private function _onWindowsKeyDown( event:KeyboardEvent ):void
{
if( event.keyCode == 81 )
{
var caret1 : int = _tf.selectionBeginIndex;
var caret2:int = _tf.selectionEndIndex;
var text1 : String = _tf.text.substring( 0, Math.min(caret1, caret2) );
var text2 : String = _tf.text.substring( Math.max(caret1, caret2), _tf.text.length );

_tf.text = text1;

if( event.altKey )
{
_tf.text += ‘@’;
}
else if( event.shiftKey )
{
_tf.text += ‘Q’;
}
else
{
_tf.text += ‘q’;
}

_tf.text += text2;
_tf.setSelection( text1.length+1, text1.length+1 );
}
}

Was mich jetzt noch interessieren würde: In dem Ticket ist die Rede von “ALTGR+2″ statt “ALTGR+q”; der Autor des Tickets ist Norweger. Damit wird der obige Code nicht funktionieren, denn KeyCode 81 ist das “q” :-( Alternativ habe ich die Prüfung

if( String.fromCharCode(event.charCode)==’@’ )

probiert. Das liefert mir auf OS X das erwünschte Ergebnis (“@”), aber auf Windows ist ALTGR+q das “q” und nicht “@”, ich gehe deshalb davon aus, dass ALTGR+2 die “2″ ist :-( Gibt es keine international gültige Version, nur mittels KeyboardEvent auf die Eingabe von Sonderzeichen zu prüfen??

Tagged as: @, Char, Character, Chars, Key, Keyboard, Klammeraffe, Sonderzeichen
Add your comment →

0 Comments

Leave your comment below! Cancel Reply

View More Posts:
  • ←
  • →

Suche:

Schubladen:

  • Apropos (62)
  • Computer (222)
    • Arduino (4)
    • Coding (166)
      • CSS (5)
      • Flash (88)
      • Java (4)
      • Javascript (17)
      • PHP (6)
    • Firefox (19)
    • OS X (19)
  • Lustig (90)
  • Musik (52)
  • Photo (30)
    • Photoshop (16)
  • Video (58)
  • Web (95)
  • Werbung (29)

@crusy:

Lord Helmchen! (Der war bestimmt schon, oder?) #cl
20 hours ago from Twitter for Windows Phone
Fußball gucken ist ein bisschen wie Al Bundy gucken: Der Sprecher ist zwar unlustig, aber das Publikum klatscht trotzdem.
20 hours ago from Twitter for Windows Phone
Wenn man heiratet, ist man dann ent-ledigt?
1 day ago from web
Sach ich doch
3 days ago from Twitter for Windows Phone
SHER
3 days ago from Twitter for Windows Phone

Kommentare:

  • Christian on WSDL2Java: Axis2 in Eclipse Indigo
  • crusy on Deutschlandweite Verteilung Deines Namens
  • Jotteh on Deutschlandweite Verteilung Deines Namens
  • Fogwulf on Abgerundete Ecken
  • crusy on Van Gogh meets Monkey Island (und mehr!)

Tags:

Actionscript Actionscript 3 Addon Adobe AIR Ant Apple AS AS3 Coding Comment Cover CSS Design Eclipse Facebook FDT Film Firefox Flash Flex Google Internet iOS iPad iPhone Java Javascript Kommentar Mac music Musik Obama OSX OS X Photoshop PHP Plugin Star Wars Video Web Werbung Wordpress XML Youtube

Projekte

  • Bent Larsen
    DAS Film Noir Point-and-Click-Adventure
  • crusy goes sf
    Photoblog aus San Francisco
  • Insignia
    Aufbau. Handel. Herrschaft.
  • nerdeln.de
    Nörgeln für Nerds
  • Photos
    Mein Photoblog
  • Tourtagebuch
    Von sechs Menschen, einer Stadt und keiner Wohnung

Powered by the inLine Minimal WordPress Theme