« Event伝搬を理解する(JP) | Main | AS2 to AS3 migration(JP) »

MouseWheel on Mac(JP)

デルタ値
OSXではflashでマウスホイールの回転量(デルタ値)を取れないので、テキストスクロールなどに応用が残念ながら出来なかった。flash9を使ってas3でもOSXでは、このデルタ値を取得できない。ではjavascript経由でdeltaを取得し、flash内で使おうというものがこのサイト。まず、swfmacmousewheelからjs一式をdownloadする。サンプルのindex.htmlを実行するとエラーが起こる。実はswfaddressを必要とするのでそちらを落とし、ファイルをjsフォルダに入れると正しく動作する。ホイールの回転に合わせてflash内のテキストフィールドの数値が変わるのが確認できる。

base.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
private function onMouseWheel(evt:MouseEvent):void{
	trace(evt.delta);
}

ブラウザのヒストリ
ちなみにswfAdressも優れもので、他種類のブラウザ、いわゆるクロスブラウザ対応でブラウザのヒストリ機能が使える。サンプルではflash内のボタンの操作に合わせてページがflash内で変わり、さらにブラウザにヒストリをセットする。ブラウザの戻るボタン操作でflash内のページを切り替えれる。

javascriptでファイルをアップロード
さらにもう一つ、swfuploadは、javascriptからswfのアップロード選択画面を呼び出してアップロードができる。flashを使えない場面(?)でxhtmlとcssでprogressバーを表示したりもできるが、もともとjavascriptだけを使ったformタグでのアップロードではアップロードの完了でしかファイルをアップロードが通知されないのでユーザはファイルが大きいと長い時間待たされてしまう。PHPなどのサーバ側のプログラムに若干手を加えること(アップロード中の/tmpフォルダのサイズを途中途中で取得するような)が出来れば、アップロード中のプログレスバーを表示できる。

Comments

You have a very talented and skilled writting. I had a great time reading your comments. love tournament is very good cosmos

Post a comment