
OpenLaszloで作られたイベント会場でのモニタリングに最適なツイッター観測アプリです。
(2010/2/1リリース)
- OpenLaszlo紹介
- プログラム構造関連
- スクリプト
- Javascript基礎
- 基礎知識
- ビュー<view>
- レイアウト
- 動かす
- 入力デバイス
- 文字
- 数値
- 日付
- オブジェクト指向
- 標準コンポーネント
- データの扱い
- データ操作(基礎)
- 応用編
–
WindowsでIMEオンにしたが最後、TAB移動が一切できなくなる(ありえねー!)場合があります。バグですね。わかってるのはWindowsでswf8のとき。swf7とかMacの場合は大丈夫らしいです。
Actionscriptを裏技的に使ってるので下記のはswf8のみ対応。
[OpenLaszlo4.3.0(swf8)]
<?xml version="1.0" encoding="UTF-8"?> <canvas proxied="false" bgcolor="0xeeeeee"> <class name="wd_tab"> <attribute name="_isShiftPressed" type="boolean" value="false"/> <attribute name="_isTabPressed" type="boolean" value="false"/> <attribute name="_isOpenLaszloKeydownAlive" type="boolean"/> <handler name="oninit"> mc = canvas.getMCRef(); mc.onKeyDown=function(){ if(!_isOpenLaszloKeydownAlive){ if(!_isTabPressed){ if(Key.getCode()=="9"){ if(_isShiftPressed){ lz.Focus.prev(); }else{ lz.Focus.next(); } setAttribute('_isTabPressed',true); } if(Key.getCode()=="16")setAttribute('_isShiftPressed',true); } } } mc.onKeyUp=function(){ setAttribute('_isTabPressed',false); if(Key.getCode()=="16")setAttribute('_isShiftPressed',false); } Key.addListener(mc); </handler> <handler name="onkeyup" args="k" reference="lz.Keys"> if(k=="9")setAttribute('_isOpenLaszloKeydownAlive',false); </handler> <handler name="onkeydown" args="k" reference="lz.Keys"> if(k=="9")setAttribute('_isOpenLaszloKeydownAlive',true); </handler> </class> <wd_tab/> <hbox spacing="3"> <vbox> <edittext/> <edittext/> <edittext/> <edittext/> <edittext/> </vbox> <vbox> <edittext/> <edittext/> <edittext/> <edittext/> <edittext/> </vbox> <vbox> <edittext/> <edittext/> <edittext/> <edittext/> <edittext/> </vbox> </hbox> </canvas>
WindowsでIMEオンにしたが最後、TAB移動が一切できなくなる問題の回避方法。swf9以上専用です。
WindowsXPのFF3とIE6で確認しましたが、swf9だと正常に動きます。
でも。。。swf10だとTAB移動は正常なのにインライン変換ができません!! orz (惜しい!誰か直してください TT)。原因不明。OpenLaszloがバージョンアップしたら直るのかも?。あるいはFlashプラグインのバージョンアップで?
・・・というのはOpenLaszlo4.3.0のときの話で、OpenLaszlo4.6.1ではswf9/swf10の両方で正常でした。
(OpenLaszlo4.6.1/swf10)
<?xml version="1.0" encoding="UTF-8"?> <canvas proxied="false" bgcolor="0xeeeeee"> <!--swf9以上でコンパイル専用。swf8以下では動作しない。--> <class name="wd_tab_as3"> <switch> <when runtime="swf9"> <passthrough> import flash.events.KeyboardEvent; </passthrough> </when> <when runtime="swf10"> <passthrough> import flash.events.KeyboardEvent; </passthrough> </when> </switch> <attribute name="_isShiftPressed" type="boolean" value="false"/> <attribute name="_isTabPressed" type="boolean" value="false"/> <attribute name="_isOpenLaszloKeydownAlive" type="boolean"/> <handler name="oninit"> LFCApplication.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); LFCApplication.stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); </handler> <method name="onKeyDown" args="Key"> if(!_isOpenLaszloKeydownAlive){ if(!_isTabPressed){ if(Key.keyCode=="9"){ if(_isShiftPressed){ lz.Focus.prev(); }else{ lz.Focus.next(); } setAttribute('_isTabPressed',true); } if(Key.keyCode=="16")setAttribute('_isShiftPressed',true); } } </method> <method name="onKeyUp" args="Key"> setAttribute('_isTabPressed',false); if(Key.keyCode=="16")setAttribute('_isShiftPressed',false); </method> <handler name="onkeyup" args="k" reference="lz.Keys"> if(k=="9")setAttribute('_isOpenLaszloKeydownAlive',false); </handler> <handler name="onkeydown" args="k" reference="lz.Keys"> if(k=="9")setAttribute('_isOpenLaszloKeydownAlive',true); </handler> </class> <wd_tab_as3/> <hbox spacing="3"> <vbox> <edittext/> <edittext/> <edittext/> <edittext/> <edittext/> </vbox> <vbox> <edittext/> <edittext/> <edittext/> <edittext/> <edittext/> </vbox> <vbox> <edittext/> <edittext/> <edittext/> <edittext/> <edittext/> </vbox> </hbox> </canvas>