タグ

ブックマーク / kkanda.hatenadiary.org (7)

  • BitmapDataを使ったParticle Systemの実装 - プログラミングとかそんなの

    前からずっと気になっていたParticle Systemの実装方式について調べました。 調査を進めてみると、SpriteをわずBitmapDataを使って描画をするという選択肢もあるということが分かり新鮮でした。 ということで、今回はBitmapDataを使ったParticleSystemの実装を解説します。 そもそもParticle Systemは、粒子(particle)の動きをシミュレーションし粒子の状態に基づいて画面描画するという動作を繰り返します。 この「動きのシミュレーション」と「画面描画」を分けるのが非常に重要で、調査前の私の理解ではこの境界が曖昧でした。 Spriteを使って描画するParticle Systemの実装は、たまに見かけるのであえて私はあえてBitmapDataに直接書き込む方式で実装してみました。 実装するにあたって、aM laboratoryのpartic

    stylus
    stylus 2008/08/19
    [AS::BitmapData]パーティクル
  • プロパティへのアクセス速度の比較 - プログラミングとかそんなの

    id:nishiohirokazuさんの少し前のエントリー「PointとArrayで速度比較」の、 ActionScriptの配列はC的な配列じゃないからかも。逆にクラスのメンバ変数はすでに配列として確保されていそう。xとかも整数にマップされてそう。 という推測が正しいのかを調べてみました。 まずは私もプロパティへ定数を代入する式の実行速度を比較してみました。 以下は、評価対象の式の一覧になります。各式を10,000,000回ループで実行した時の実行時間を//の後ろに記載しておきます。 また、pがPoint型、aがArray型、oがObject型となります。 p.x = 1; //216ms (1) p["x"] =1; //1631ms (2) a[0] = 1; //567ms (3) a["0"] = 1; //2681ms (4) o.x = 1; //2028ms (5) o["

    プロパティへのアクセス速度の比較 - プログラミングとかそんなの
    stylus
    stylus 2008/08/19
    メンバ変数へのアクセスが最速でした(1)。しかし、添字を使ってアクセスするとかなり遅くなります(2)。
  • [as3][flash] カメラのキャプチャ取り込みをする場合に注意すべきこと - プログラミングとかそんなの

    カメラから取り込んだ画像を使うFlashを随所で見かけるようになりましたが、複数のカメラがインストールされている環境が考慮されていない場合が多く、サンプルを動かせないということがよくあります。 ユーザーに複数のカメラから使いたいものを選択させるための設定パネルを表示するためには、 Security.showSettings(SecurityPanel.CAMERA); var cam:Camera = Camera.getCamera(); if ( cam != null ) { vid.attachCamera(cam); } といった感じで、Camera.getCamera()を呼び出す前に一行追加するだけです。 ちなみに、この方法はマニュアルのCameraクラスのgetCamera()の使用方法にて解説されていますが記載されているコードに誤植があります。 System.showSe

    [as3][flash] カメラのキャプチャ取り込みをする場合に注意すべきこと - プログラミングとかそんなの
  • AIRでパスワードを保存する時はEncryptedLocalStoreを使うべき - プログラミングとかそんなの

    WebサービスにアクセスするAIRアプリを作成していると、ユーザーの利便性を考慮してWebサービスのユーザー名とパスワードを保存しておきたいと思う時があります。 そうした時のために、AIRにはEncryptedLocalStoreクラスが用意されています。このクラスはOS固有のデータ保護APIを使用してデータを保護する仕組みを提供しています。 このクラスを通して保存されたデータは、他のユーザーやアプリケーションが解釈できないように暗号化して保存されます。具体的には128 ビットの AES-CBC暗号 が使われています。 AES暗号のような共通鍵暗号を使う場合、アプリケーションに固定の鍵を組み込んでおくような実装をしがちですが、そういった実装だとアプリケーションを解析すれば鍵を取得出来るため、アプリケーションが保存しているWebサービスのユーザー名とパスワードを回収するような悪意のあるプログ

    AIRでパスワードを保存する時はEncryptedLocalStoreを使うべき - プログラミングとかそんなの
  • GCWatcher:GCの起動とオブジェクトの回収状況を監視するための方法

    GCを強制的に起動する方法について追記しました(4/8) fladdictさんのAS3でガベージコレクションを見張る画期的方法メモにて、 弱参照のDictionaryのオブジェクトキーを利用して、対象のオブジェクトがガベッジコレクションされたかどうかを見張ることができるんじゃね?? という面白そうなお題があがっていたので実装、検証を行ってみました。 検証のために実装したクラスGCWatcherには、次の二つの機能があります。 GCが起動した場合にGARBAGE_COLLECTイベントを発行する 監視したオブジェクトを監視リストに追加し、GCに回収された場合にCHANGEイベントを発行する このクラスを使うと、fladdictさんがエントリー中で書いていた、 onGarbageCollection イベントを発行できるし、DictionaryのキーをダンプすればGCされそこねたオブジェクトの

  • DisplacementMapFilterを使って波紋を表現する - プログラミングとかそんなの

    DisplacementMapFilterを使って波紋を表現する 今回も前回に引き続きDisplacementMapFilterを使ったエフェクトに挑戦してみました。今回は、Macのウィジェットを追加した時のエフェクトみたいな波紋を作ってみたいと思います。 少し分かりづらいのですが、上の画像はMacのウィジェットマネージャを起動してウィジェットを追加したときに背景が波紋で揺れるエフェクトが出た瞬間をキャプチャしたものです。 このような波紋を作るには、下記のような周期的かつ滑らかに変化する置き換えマップが必要になります。 しかし、PerlineNoiseでこのような画像を生成する方法を思いつかなかったので別なアプローチを試すことにしました。 波紋用の置き換えマップ生成法(その1) まずはじめに試したのは、単純にdrawCircle()関数で円を描きそれをBlurFilterでぼかすという方法

    DisplacementMapFilterを使って波紋を表現する - プログラミングとかそんなの
  • DisplacementMapFilterの動作を理解する - プログラミングとかそんなの

    DisplacementMapFilterの動作は理解しづらいので、パラメーターとエフェクトの関連を確認するためのツールを作ってみました。 DisplacementMapFilterとは何か? DisplacementMapFilter クラスは、指定された BitmapData オブジェクト (置き換えマップイメージと言います) のピクセル値を使用して、オブジェクトの置き換え (変位) を実行します。このフィルタを使用して、MovieClip、SimpleButton、TextField、Video オブジェクトなどの DisplayObject クラスから継承したオブジェクト、および BitmapData オブジェクトにワープ効果や斑点効果を適用できます。 ActionScript 3.0 コンポーネントリファレンスガイドの DisplacementMapFilterクラスの説明から抜

    DisplacementMapFilterの動作を理解する - プログラミングとかそんなの
  • 1