iPhoneからFlashを操作。

iPhoneからFlashを操作するために
iPhoneのタッチイベント→Flashのマウスイベント
にうまいぐらいに変換したいなあと思ってる。


その流れでiPhoneのtouchesMovedのマルチタッチを
stageにaddEventListenerしたマウスムーブに変換したいー。
けどFlashはシングルタッチしか認識できないのでちょとめんどくさい。


という感じ。

iPhone-Flash間通信良い感じになってきた

今日できたこと。

  • マルチタッチに対応した。
  • Flash側のディスプレイオブジェクトをiPhoneに送れるようになった。
  • iPhoneに送ったオブジェクトのマウスダウン(タッチした)がわかるようになった。
  • iPhoneに送ったオブジェクトの移動に応じてFlash側のオブジェクトも動くようになった。


こんなところかー。

疲れる。

iPhoneからFlashを遠隔操作みたいなのはすごい簡単にできると思うんだけど、
今回はデータの持ち方とかを頑張って考えてみたので結構疲れる。
何バイト目から何バイト分にタッチの個数か入れるーとか。めんどくさい。
しかしこのおかげで良い感じに進められてる気がする。気がするだけかも。

今後。

  • Flash側の動きをiPhoneに伝える。
  • マウスアップ、マウスムーブに対応する。(iPhoneだとtouchesEndedとtouchesMovedとか。)


とりあえずはそんなところ。
もう少し形になってきたら動画とか見せたいな。

Socketでハマる

ぷちぷち続けているiPhone-Flash間通信がなかなか良い感じになり。
タッチのイベントとかを送れるようになった!

実機怖い

それまではシミュレータでやってたんだけど
一度実機で動かしてみようと思って試してみたら
iPhone側のacceptの段階で、

Program received signal EXC_BAD_ACCESS

が。


シミュレータのときは起きなかったのにー
と思いつつ色々コメントアウトしてたらなんか動いた。
なんだろうと思ったら


char buff[512];


の宣言の位置が問題だった。


関数の頭ではなく、途中に宣言してたのがダメだったらしい。
久々に
「Cは変数宣言はブロックの頭じゃないといけない」
というのをちゃんと守ろうと思った。


こういう実機とシミュレータの挙動の違いってのは怖いなー。

iPhoneとFlashの通信

iPhoneFlashで通信したい!

方法1: iphoneas

有名なやつ。
http://www.libspark.org/wiki/uranodai/iphoneas
Javaのサーバーを介して通信する。


でもどうせなら直接通信したい!

方法2: ソケット通信

iPhone側でサーバーを立て、
AS3のXMLSocketでアクセス。
→つながった!


iPhone側のサーバーはCで書いた。
「C言語 サーバー」で検索すればいっぱいでてくる。


AS3のXMLSocketは
http://hakuhin.hp.infoseek.co.jp/main/as/xml_socket.html
あたりが役に立つ。


良い感じに使えそう。