iPhone-Flash間通信良い感じになってきた
今日できたこと。
- マルチタッチに対応した。
- Flash側のディスプレイオブジェクトをiPhoneに送れるようになった。
- iPhoneに送ったオブジェクトのマウスダウン(タッチした)がわかるようになった。
- iPhoneに送ったオブジェクトの移動に応じてFlash側のオブジェクトも動くようになった。
こんなところかー。
Socketでハマる
ぷちぷち続けているiPhone-Flash間通信がなかなか良い感じになり。
タッチのイベントとかを送れるようになった!
実機怖い
それまではシミュレータでやってたんだけど
一度実機で動かしてみようと思って試してみたら
iPhone側のacceptの段階で、
Program received signal EXC_BAD_ACCESS
が。
シミュレータのときは起きなかったのにー
と思いつつ色々コメントアウトしてたらなんか動いた。
なんだろうと思ったら
char buff[512];
の宣言の位置が問題だった。
関数の頭ではなく、途中に宣言してたのがダメだったらしい。
久々に
「Cは変数宣言はブロックの頭じゃないといけない」
というのをちゃんと守ろうと思った。
こういう実機とシミュレータの挙動の違いってのは怖いなー。
flash.net.Socket
使ってみた。
使い方はXMLSocketとほとんど一緒だったのですぐ使えた。
これでバイナリデータの通信がめちゃくちゃ楽になった。
テキストデータだけ扱うならXMLSocketの方が楽かも。
AS3のソケット通信て
Socketクラスがあるのか。
XMLSocketだけだと思ってた。
後で使ってみる!
iPhoneとFlashの通信
方法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
あたりが役に立つ。
良い感じに使えそう。