Wii Flash API 公開してみる [ActionScript2.0]
あ、どうもいつも通り JC です。
前回作った JavaScript で取得した Wii リモコンの情報を Flash で扱うのに便利な、
WiiFlashAPI を公開してみる。
ちょっとブラッシュアップしました。
一応ドキュメントも作っていたんですが、読みにくいカモしれません(汗)
新しく作ったサンプルです。
やってみて色々楽しかった。
ボタン操作は結構完璧?だと思うが、まだまだリモコンの操作が難点。
どうにかしたい。
操作自体は前回よりずっと早くなった。
API はコレです -> WiiFlashAPI(Beta)
全体的にはこんな感じです。
■ Wii Flash API (Beta)
date : 2007/06/02
version : 0.2
AS Ver. : 2.0
author : jc
■ 概要
Wii リモコンの情報を Flash で扱うための API
Flash / JavaScript Integration Kit (Beta) 必須
http://weblogs.macromedia.com/flashjavascript/
上記 URL から DownLoad してそのまま使ってください。
■ 使い方 (JavaScript側)
HTML に以下を書きます。(JSファイル、SWFファイルのパスは各自直してください。)
<script type="text/javascript" src="js/JavaScriptFlashGateway.js"></script>
<script type="text/javascript" src="js/Wii.js"></script>
<script type="text/javascript">
<!--
var uid = new Date().getTime();
var flashProxy = new FlashProxy(uid, 'JavaScriptFlashGateway.swf');
//-->
</script>
<script type="text/javascript">
<!--
var tag = new FlashTag('XXXX.swf', 幅, 高さ);// 幅と高さは各自直してください。
tag.setFlashvars('lcId='+uid);
tag.write(document);
//-->
</script>
Wii.js ファイルについて
// Wii
// proxy : FlashProxy
function Wii(proxy)
// default でのブラウザのアクションをキャンセルする。
Wii.prototype.defaultActionCancel = function()
// 初期化
Wii.prototype.init = function()
// Wiiリモコンの取得する限度をセットする。
// コレを少なめにすると少し早くなる。(ような気がする)
Wii.prototype.setLimit = function(limit)
// limit を設定して Flash に Wii リモコンの情報をぶん投げ続ける。
Wii.prototype.start = function(limit)
// 情報をぶん投げるのをやめる
Wii.prototype.stop = function()
// Flash に情報を送る
Wii.prototype.update = function()
// Controller の情報をまとめる。
Wii.prototype.getController = function()
// 1P 用 KeyCode 取得
Wii.prototype.getKeyTotal = function()
// 1P 用 KeyCode 取得用
Wii.prototype.onKeyDown = function()
Wii.prototype.onMouseDown = function()
Wii.prototype.onKeyUp = function()
Wii.prototype.onMouseUp = function()
// Wii リモコンのキーコード
var WiiKeyCodeBind = {};
// ブラウザの判定
var WiiBrowser = function() {}
WiiBrowser.isWiiBrowser = function()
// Flash から Wii を初期化する時はココを呼ぶ
function main()
※ 一部省略しています。詳しくはソースコードにあるコメントを見てください。
■ 使い方 (Flash側)
// jc.wii.Wii を new します。(引数は_root)
import jc.wii.Wii;
import jc.wii.Controller;
import mx.utils.Delegate;
var wii: Wii = new Wii(_root);
// 必ず初期化してください。
wii.init();
// wiiコントローラーインスタンスを取得します。
var con1: Controller = wii.getController(1);
var con2: Controller = wii.getController(2);
// ボタン情報の取得は以下のようにします。Delegate を使うと便利です。
function onAKeyPressTest() {
trace("A Button Press");
}
function onTwoKeyReleaseTest() {
trace("Two Button Release");
}
con1.onAKeyPress = Delegate.create(this, onAKeyPressTest);
con1.onTwoKeyRelease = Delegate.create(this, onTwoKeyReleaseTest);
// 以上の用に設定すると ボタンが press または release された時に
// 設定した function が呼ばれます。
// 位置、ねじれ
// getX 等で位置情報を得ることができます。
// ソースの方に詳しく書いたつもりです。そっちを見てください。
// onEnterFrame とかで主に使われると思います。
_root.test_mc._x = con1.getX();
_root.test_mc.._rotation = con1.getRoolAngle();
// start で 情報の取得を開始します。
// ●● コレを実行しないと情報取得できないので忘れないように ●●
wii.start(2);
■ その他
wii.start() 以外にも wii.polling() なんて方法もあります。
Wii ブラウザの Flash Player のバージョンが上がって、
ExternalInterface が使える用に鳴ったらポーリングして返値を得た方が
早いかも知れません。(根拠無し)
何かバグ、要望等がありましたら連絡ください。
休日の経済を消費の増加を活性化する。
by Air Jordans (2011-01-10 12:47)
I think your thought is quite unique,it makes me surprise.I really can’t image how that could be!Nice
by coach outlet (2011-06-16 12:21)