| |||||||
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) |
| :]------- Registriert seit: Sep 2003 Ort: Köln
Beiträge: 115
| Firefox wmode
Hallo zusammen, habe mich heute mit nem alten Thema herumgeschlagen und ne ganz nette Lösung (wie ich finde) gefunden. Im Firefox 2 und 3 (kleiner 3.5) kann man bei der Nutzung von wmode=transparent in Textfelder Zeichen die in Kombination mit der 'AltGr'-Taste erzeugt werden (wie z.B. das @) nicht eingeben. Hier ne kleine Demo, mit meiner Lösung: Firefox wmode Bei Eingaben in das Feld 'Input' sieht man den Bug. Bei einer Eingabe in das Feld 'Input checked' wird dieser Fehler behoben. Ich hoffe, es kann jemand brauchen. LG, Peter |
| | |
| | #4 (permalink) |
| :]------- Registriert seit: Sep 2003 Ort: Köln
Beiträge: 115
| Script
Hi chanel, kann ich gerne machen: Code: var _keyList : Object = new Object();
/**************************************
* Keys
***************************************/
/**
* Key Event Down
* Speichert den gedrückten Key in der '_keyList'
**/
function onKeyDown()
{
setKey( Key.getCode(), true );
keyCodeDownTxt.text = Key.getCode();
debugAllSetKeys();
}
/**
* Key Event Up
* Entfernt den losgelassenen Key aus der '_keyList'
**/
function onKeyUp()
{
setKey( Key.getCode(), false );
keyCodeUpTxt.text = Key.getCode();
debugAllSetKeys();
}
Key.addListener( this );
/**
* Keys in _keyList einfügen/entfernen.
* @param code : Number
* @param b : Boolean
**/
function setKey( code : Number, b : Boolean ) : Void
{
// Firefox mit wmode setzt beim drücken der AltGr-Taste 17 statt 18
code = code == 17 ? 18 : code;
if( b )
{
_keyList[ String( code ) ] = b;
}
else
{
delete _keyList[ String( code ) ];
}
}
/**
* Gibt zurück, ob der übergebene Key zurzeit gedrückt wird.
* @param code : Number
* @return Boolean
**/
function getKey( code : Number ) : Boolean
{
var b : Boolean = _keyList[ String( code ) ];
return b == null ? false : b;
}
function getKeyNum() : Number
{
var n : Number = 0;
for( var i in _keyList )
{
if( _keyList[ i ] == true )
{
n++;
}
}
return n;
}
/**
* Gibt alle zurzeit gedrückten Keys aus.
**/
function debugAllSetKeys() : Void
{
setKeysTxt.text = getKeyNum() + ": ";
for( var i in _keyList )
{
setKeysTxt.text += i + ", ";
}
}
/**************************************
* Textfield-Kontrolle
***************************************/
function onChanged( textfield : TextField ) : Void
{
if( getKeyNum() >= 2 && getKey( 18 ) )
{
var caretIndex : Number = Selection.getCaretIndex();
var char : String = "";
if( getKey( 81 ) ) char = "@";
else if( getKey( 69 ) ) char = "€";
else if( getKey( 226 ) ) char = "|";
else if( getKey( 107 ) ) char = "~";
else if( getKey( 50 ) ) char = "²";
else if( getKey( 51 ) ) char = "³";
else if( getKey( 55 ) ) char = "{";
else if( getKey( 56 ) ) char = "[";
else if( getKey( 57 ) ) char = "]";
else if( getKey( 48 ) ) char = "}";
else if( getKey( 219 ) ) char = "\\";
if( char != "" ) textfield.replaceText( caretIndex - 1, caretIndex, char );
}
}
inputCheckedTxt.addListener( this ); ![]() LG, Peter |
| | |
| | #5 (permalink) |
| :]------- Registriert seit: Sep 2003 Ort: Köln
Beiträge: 115
| FirefoxWmodeFix
Hallo zusammen, habe mir jetzt ne kleine Helfer-Klasse geschrieben. Damit geht es etwas einfacher: FirefoxWmodeFix Code: /**
* Bug im Firefox 2 und 3 (kleiner 3.5)
* Bei der Nutzung von wmode=transparent werden in Textfelder Zeichen,
* die in Kombination mit der 'AltGr'-Taste erzeugt werden (wie z.B. das @) nicht richtig angegeben.
*
* Hier können Textfelder angemeldet werden, bei denen dieser Bug korrigiert werden soll.
* @author Peter Klarl
*/
class de.interactivem.env.fixes.FirefoxWmodeFix
{
private var _keyList : Object = new Object( );
private var _txtList : Array;
private var _infoTxt : TextField;
public function FirefoxWmodeFix( infoTxt : TextField )
{
init();
setInfoTextField( infoTxt );
}
private function init() : Void
{
Key.addListener( this );
_txtList = new Array();
}
/**
* Setzt ein Textfeld für die Infoausgabe.
*/
public function setInfoTextField( txt : TextField ) : Void
{
if( txt != null ) _infoTxt = txt;
}
/**
* Stellt alle gedrückten Keys im _infoTxt dar.
*/
public function showAllSetKeys() : Void
{
if( _infoTxt != null ) _infoTxt.text = getAllSetKeysAsString();;
}
/**
* Entfernt die Listener aller angemeldeten Textfelder und den Key-Listener.
*/
public function remove() : Void
{
Key.removeListener( this );
for( var i : Number = 0; i < _txtList.length ; i++ )
{
var txt : TextField = _txtList[ i ];
txt.removeListener( this );
}
}
/**
* Meldet ein Textfeld an.
*/
public function addTextField( txt : TextField ) : Void
{
txt.addListener( this );
_txtList.push( txt );
}
/**************************************
* Keys
***************************************/
/**
* Key Event Down
* Speichert den gedrückten Key im Speicher-Objekt '_keyList'
**/
private function onKeyDown() : Void
{
setKey( Key.getCode(), true );
showAllSetKeys();
}
/**
* Key Event Up
* Entfernt den losgelassenen Key aus den Speicher-Objekt '_keyList'
**/
private function onKeyUp() : Void
{
setKey( Key.getCode(), false );
showAllSetKeys();
}
/**
* Keys in einen Objekt einfügen/entfernen.
* @param code : Number
* @param b : Boolean
**/
private function setKey( code : Number, b : Boolean ) : Void
{
code = code == 17 ? 18 : code;
if( b )
{
_keyList[ String( code ) ] = b;
}
else
{
delete _keyList[ String( code ) ];
}
}
/**
* Gibt zurück, ob der übergebene Key zurzeit gedrückt wird.
* @param code : Number
* @return Boolean
**/
private function hasKey( code : Number ) : Boolean
{
var b : Boolean = _keyList[ String( code ) ];
return b == null ? false : b;
}
/**
* Gibt die Anzahl der gedrückten Tasten zurück.
* @return Number
**/
private function getKeyNum() : Number
{
var n : Number = 0;
for( var i in _keyList )
{
if( _keyList[ i ] == true )
{
n++;
}
}
return n;
}
/**
* Gibt alle zurzeit gedrückten Key aus.
**/
public function getAllSetKeysAsString() : String
{
var s : String = getKeyNum() + ": ";
for( var i in _keyList )
{
s += i + ", ";
}
return s;
}
/**************************************
* Textfield-Kontrolle
***************************************/
private function onChanged( textfield : TextField ) : Void
{
if( getKeyNum() >= 2 && hasKey( 18 ) )
{
var caretIndex : Number = Selection.getCaretIndex();
var char : String = "";
if( hasKey( 81 ) ) char = "@";
else if( hasKey( 69 ) ) char = "€";
else if( hasKey( 226 ) ) char = "|";
else if( hasKey( 107 ) ) char = "~";
else if( hasKey( 50 ) ) char = "²";
else if( hasKey( 51 ) ) char = "³";
else if( hasKey( 55 ) ) char = "{";
else if( hasKey( 56 ) ) char = "[";
else if( hasKey( 57 ) ) char = "]";
else if( hasKey( 48 ) ) char = "}";
else if( hasKey( 219 ) ) char = "\\";
if( char != "" ) textfield.replaceText( caretIndex - 1, caretIndex, char );
}
}
public function toString() : String {
return "de.interactivem.env.fixes.FirefoxWmodeFix";
}
} Code: import de.interactivem.env.fixes.FirefoxWmodeFix; var firefoxWmodeFix : FirefoxWmodeFix = new FirefoxWmodeFix( setKeysTxt ); firefoxWmodeFix.addTextField( inputCheckedTxt ); Ich hoffe, es kann jemand brauchen :]- LG, Peter |
| | |
| | #8 (permalink) |
| mod_rewrite Registriert seit: Feb 2003 Ort: München
Beiträge: 15.621
|
Ich hab das mal in den 'Stuff'-Bereich verschoben, wenn's dir recht is…
__________________ RTFM Wie man Fragen richtig stellt. Achim Bindannmalweg Money makes the world go round, fear makes it turn much faster. (New Model Army) |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| firefox, wmode = transparent |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| WMODE und @-Zeichen bei Firefox | fanyProductions | ActionScript 2 | 1 | 03-03-2009 10:21 |
| WMODE = Transparent im Firefox, @-Zeichen, etc. | Sören | Am Rande | 5 | 21-01-2009 11:21 |
| Probleme mit Firefox 3 auf Windows mit wmode=transparent | phase | HTML und CSS | 2 | 14-10-2008 20:44 |
| wmode Problem mit Firefox 2.0 | JohannesX | Flash CS3 Professional | 0 | 01-09-2008 13:29 |
| wmode in Mozilla/Firefox | Geschan | Flash MX 2004 | 9 | 22-10-2005 03:09 |