Amazon

ラベル ActionScript の投稿を表示しています。 すべての投稿を表示
ラベル ActionScript の投稿を表示しています。 すべての投稿を表示

2012年1月19日木曜日

SQLiteを使ってみた。

SharedObjectは、手っ取り早く保存ができてよかったんだけど、Appleのレギュレーションの変更により、ちょっと面倒になった。

iOS データ保管ガイドラインの変更と Adobe AIR への影響

ここに書いてあることをやれば済む話ではあるけど、まだレギュレーションが変わることも考えられる。
とりあえず、FileStreamを使おうと思ったのだけど、「FlashCS5.5で学ぶiPhone実践プログラミング」という本には、FileStreamクラスは、完全な動作保証はされていないとのこと。。。

しょうがないので、残る選択肢のSQLiteで保存。
MySQLやってるんで、SQL自体には抵抗ないけど、フェッチのかけかたとか、独特ですね。
まぁ、これで問題ないでしょう。

2011年11月7日月曜日

Tweenライブラリ

やりたいことは、
・実行開始時、ゆっくり動いて、徐々に速く。
・終了時は、徐々に遅くから目的地で停止
まぁ、そんな感じなので、n字曲線知っていれば、できちゃうよね?

でも、今回は、Tweenライブラリを使ってみた。
Tweenライブラリは、多くありますね。
今回は、このへんで。

import fl.transitions.*;
import fl.motion.easing.*;
いとも簡単にできました。

2011年10月29日土曜日

ドラッグ&ドロップの処理

今年、Win7x64にしたのだけど、いつもは入れる、VisualStudio2010を今は入れてません。
今日まで、別に困ることもなく…(笑)

でもきのう、VCで作った自作ツールを動かそうとしたら、どうやらリリースモードでのビルドしてなくて、dllを要求された。
とりあえず、dllを入れればこのツールは動くのだけど、またVisualStudioを入れるかどうか悩む。
このツール、まぁたいしたことやっていないので、VCはやめて、AIRアプリにすることにした。
たぶん、VisualStudioインストールする時間より早く、このツールができたよ(笑)
あぁ、AIRアプリ簡単。

ちょっと覚書
flaにコンポーネントUILoaderを入れておいて、、、
このへんをインポート
import flash.display.*;
import fl.containers.UILoader;
import flash.desktop.ClipboardFormats;
import flash.events.NativeDragEvent;
import flash.desktop.NativeDragManager;
import flash.filesystem.*;
import flash.desktop.Clipboard;
import flash.net.URLRequest;
import flash.events.Event;
import flash.net.*;
import flash.filesystem.FileStream;
import flash.errors.IOError;


あとは、
movieclip.addEventListener( NativeDragEvent.NATIVE_DRAG_ENTER, _enter);
movieclip.addEventListener( NativeDragEvent.NATIVE_DRAG_DROP, _drop );
で、イベントを登録しておいて、
private function _enter(event:NativeDragEvent):void
{
NativeDragManager.acceptDragDrop(movieclip);
}
private function _drop(event:NativeDragEvent):void
{
var files:Array = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
 for(var i:int =0; i < files.length; i++ ) {
trace(files[i].url);
 } 
}

まぁ、これで、どのファイルがドロップされたかがわかるので、あとは通常通りの処理。

ぼくは、NativeDragManager.acceptDragDropを入れるの忘れて、なかなかdropされなかったです(笑)

EventDispatcher

Flashには、無限ループ15秒(設定で60秒までいくらしい)ルールがある。
通常は、いつもタイマー割り込み発生で処理をするのですが、ちょっと今回は、割り込みのない状態で、BGMの再生ような感じで、無限にまわしたかった。
なので、何気に初のカスタムイベント作成。

EventDispatcherの継承クラス作成して、終了したら、Completeイベント出して、イベント拾ったら、また繰り返し。

できたのがこんな感じ。

package  {
import flash.events.EventDispatcher;
import flash.events.Event;
import flash.utils.*;
public class Nantoka extends EventDispatcher {
public function Play()
{
(処理をここ)
var event:Event = new Event(Event.COMPLETE);
dispatchEvent(event);
}
}
}

これで、Event.COMPLETEとして拾えます。

2011年10月14日金曜日

policy-file-request

Flashとサーバー間で、ソケット通信中。。。
ローカルにJavaサーバー立てて、ある程度できたので、本番サーバーに入れたら、ソケット接続後に、


policy-file-request

という文字列が送信されてる、、、。

あれ?ソケットポリシーファイルも送ってあるのになんでだ?と思ったら、サーバー側から、crossdomain.xmlを返さないといけないらしい。。。




Flash Player 9,0,115,0のに対処する方法


JavaScriptとFlashでSocket通信

さて、どうなる?

2011年6月25日土曜日

escapeMultiByte

ちょっと、ActionScript3.0ではまった。
日本語をescape()して、某ガジェット内なので、ExternalInterfaceで、JavaScriptに渡してということをしてたら、JavaScriptでエラー。
ちょっとぐぐって、ActionScript3.0のURLエンコードは、escape()ではなくて、escapeMultiByte()でとのことなので、変更したらうまくいった。
importは、flash.utils.escapeMultiByte;

サーバーサイドのPHPでもちゃんと受信できた。

2011年2月10日木曜日

ActionScript の条件付きコンパイル

iPhone用とAndroid用で、VisualStudioみたいに、条件付きコンパイルができないものかと思っていたら、設定するところがありました。
さっそく使ってみる。
Flash側で、
CONFIG::定数名
を設定して、
ActionScript側で
config namespace MY_CONFIG;
とやっておいてから、CONFIG::MY_CONFIGで取得完了。

これで、クロスデバイス完了!
ネイティブコード書くより、はるかにらくちん。