ブログを移転して再開しました

移転しました。移転先はこちら。

メタボールにチャンレジしてみたよ(2)

前回に引き続き、メタボールを使った表現にチャレンジしてみました。今回は、壁面で反射するパーティクルをメタボールでレンダリングしてみました。多少見栄えを良くするためにBlurFilterとGlowFilterをかけています。ソースコードはこちらから。

メタボールにチャレンジしてみたよ

Tweenerを使って動きを作っていくとシャキーンという感じの動きを簡単に作れるのですが、 慣れてくると少し有機的な動きを取り入れてみたいという衝動に駆られます。ということで、今回は「メタボール」に挑戦してみました。メタボールって言葉自体はあまり…

BitmapDataを使ったモザイクエフェクト

最近仕事で忙殺されていて、趣味のプログラムを全然書いてなかったので久しぶりに書いてみました。作ってみたのは、スライドショーに使えそうなモザイクエフェクトです。モザイクは、画像の拡大縮小によって実現しています。まず、画像を縮小コピーします。…

AdvancedDataGridのヘッダに表示される縦線を消す方法

AdvancedDataGridのデフォルト設定だと、ヘッダがイケテなくて困った人は多いと思います。とくに、並び替え機能が不要なときにsorter領域の縦線が消したくなった人は多いと思います。普通に考えると、sortableColumnsというプロパティをfalseに設定する、も…

AIRでパスワードを保存する時はEncryptedLocalStoreを使うべき

WebサービスにアクセスするAIRアプリを作成していると、ユーザーの利便性を考慮してWebサービスのユーザー名とパスワードを保存しておきたいと思う時があります。 そうした時のために、AIRにはEncryptedLocalStoreクラスが用意されています。このクラスはOS…

[as3][flash] カメラのキャプチャ取り込みをする場合に注意すべきこと

カメラから取り込んだ画像を使うFlashを随所で見かけるようになりましたが、複数のカメラがインストールされている環境が考慮されていない場合が多く、サンプルを動かせないということがよくあります。ユーザーに複数のカメラから使いたいものを選択させるた…

Extension Managerのバージョンが古くて嵌まった

Mac版 Flash8からCS3にアップグレードした際にExtension Managerが1.8にバージョンアップされないという問題で嵌まりました。CS3にアップグレードしてから、mxpファイルをインストールしようとするとFlash8以降のみインストールできますというようなエラーが…

プロパティへのアクセス速度の比較

id:nishiohirokazuさんの少し前のエントリー「PointとArrayで速度比較」の、 ActionScriptの配列はC的な配列じゃないからかも。逆にクラスのメンバ変数はすでに配列として確保されていそう。xとかも整数にマップされてそう。 という推測が正しいのかを調べて…

[flash][scheme][SICP] Flashで図形言語の描画ツールを作りました(SICP2章の話)

このGW中、ずっと計算機プログラムの構造と解釈(通称SICP)を読みふけっておりました。この本はいわゆる計算機科学の入門書で、本の中に出てくるプログラムはLISPの方言であるschemeで書かれており、 慣れないと少し取っ付きづらい本です。この本の2章に「…

BitmapDataを使ったParticle Systemの実装

前からずっと気になっていたParticle Systemの実装方式について調べました。調査を進めてみると、SpriteをわずBitmapDataを使って描画をするという選択肢もあるということが分かり新鮮でした。 ということで、今回はBitmapDataを使ったParticleSystemの実装…

ベジェ曲線を使ったアニメーション(リプレイ機能付き)

突然ですが3次ベジェ曲線だと制御点が4つもあるので、スクリプトで制御する際にコードから描画イメージが沸きづらくないですか? グラフィックソフトで普段からベジェ曲線に慣れている人であればそうでも無いのかもしれないですが。。。というわけで制御に…

GCWatcher:GCの起動とオブジェクトの回収状況を監視するための方法

GCを強制的に起動する方法について追記しました(4/8) fladdictさんのAS3でガベージコレクションを見張る画期的方法メモにて、 弱参照のDictionaryのオブジェクトキーを利用して、対象のオブジェクトがガベッジコレクションされたかどうかを見張ることがで…

FlickrViewer:as3flickrlibを使ってFlickrから画像を読み込む方法

Flickrを検索して表示するViewerを作ってみました。画像の取得には、Adobe Labsで作成されたas3flickrlibというライブラリを使っています。このライブラリは、サンプルコードも付属しておらずあまり解説している記事もみかけないので試しに使ってみました。…

AS3で遅延評価を実装してみました

最近読んでいるSICPの理解度を確かめるために、AS3で遅延評価を実装してみました。遅延評価を理解する前に、AS3の関数呼び出しが値呼び出しであることを理解しておく必要があります。値呼び出しというのは、例えば、 function square(x) { return x * x; } f…

DisplacementMapFilterを使って波紋を表現する

DisplacementMapFilterを使って波紋を表現する 今回も前回に引き続きDisplacementMapFilterを使ったエフェクトに挑戦してみました。今回は、Macのウィジェットを追加した時のエフェクトみたいな波紋を作ってみたいと思います。少し分かりづらいのですが、上…

TextFieldの行間をマイナスに設定した場合の注意

TextFieldの行間は、TextFormatオブジェクトのleadingプロパティで指定出来ます。フォントサイズを大きくした場合、文章の見栄えを整えるために行間をマイナスに指定することがたまにあります(フォントサイズを大きくすると境界枠とグリフの間の余白が目立…

DisplacementMapFilterの動作を理解する

DisplacementMapFilterの動作は理解しづらいので、パラメーターとエフェクトの関連を確認するためのツールを作ってみました。 DisplacementMapFilterとは何か? DisplacementMapFilter クラスは、指定された BitmapData オブジェクト (置き換えマップイメー…

getURL()の挙動を調べる(その1)

とある事情で受け取ったflaファイルに、次のようなactionscriptが記述されていました。 getURL('javascript:doSomething()'); getURL('./somewhere.html'); これをパブリッシュすると、2つ目のgetURL()の呼び出しだけが実行されるのが確認できます。どうし…

BitmapData.perlinNoise()のサンプル

BitmapDataクラスのperlinNoise()メソッドの実行結果を確認するためのFlashを作成してみました。perlinNoise()メソッドは、ランダムな雲模様や縞模様を作成する際に使います。通常は、DisplacementMapFilterと組み合わせるなどして利用し、単体で利用するこ…

SICP 問題1.6の解答

読書会のメンバーmahata氏を見習って、解答の一部をアップしてみることにしました。まずは問題1.6の解答です。new-ifの評価が始まる前に引数が評価され、その中でsqrt-iterが再帰呼び出しされているので無限ループになる。解答の説明をする前にまずは、この…

[AIR] File.browseForDirectory()などを呼び出せない

gihyo.jpのタナカヤスヒロさんの記事によるとMac版ベータ1では、Fileクラスのbrowse〜系のメソッドはbrowseForSave()しか動作しないようだが、 ベータ2でも状況かわってないみたい。Macユーザーは切り捨てですかorzMacで開発している人間だっているんだ!…

NativeWindowにFlexコンポーネントが追加できない

AIR

AIRでテストアプリを作成していたら、新しく追加したNativeWindowにFlexコンポーネントが追加出来ないことに気がついた。自分が間違っているだけかもしれないのだが・・・。 以下が、自分がテストに使ったコード。 <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" title="NativeWindowTest"> <mx:Script> </mx:script></mx:windowedapplication>

Flash CS3で_parentプロパティが使えなくなったことに今頃気づいた・・・

Flash CS3でFlash8のように、_parentで親ムービークリップを参照し制御しようと試みたが、_parentはparentに名前が変更されていた。このparentプロパティは、正確にはflash.display.DisplayObjectクラスのプロパティで、flash.display.DisplayObjectContaine…

AIRのパッケージ作成方法

AIR

AIRアプリケーションをパッケージングするには、beta2からデジタル署名が必要になった。とりあえずは、adtコマンドを使って署名ファイルを作成できる。 $adt -certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword これでsampleCert.pfxとい…

システムのウィンドウ枠がないアプリを作る方法

アプリケーション記述ファイルのsystemChromeをnoneに設定し、transparentをtrueにすればよい。 記述例は以下の通り。 Test Test app! Sample app copyright information Main Window Test.swf true none true 800 600 しかし、システムのウィンドウ枠がない…

AIR完全解説が完全に解説されていなかった件

AIR

ISBN:9784756150325がらFlexSDKの使い方を学習していたところ、beta1の内容を元に記載されている箇所があり数時間嵌まった。。。本に記載されている通りに実行すると、次のようなエラーが出る。 This application cannot be run.(Error: This application re…

AS3のXML名前空間で嵌まる

ActionScrip2.0以降ではXMLをリテラル型として扱えるので、DOMの操作がそれなりに簡単に記述できる。 var myXML:XML = hoge fugo fuga fugofugo ;trace(myXML.book[0].title); // hoge trace(myXML.book.(@id==2).author); //fugofugo これを踏まえて、RSSフ…

simpleTestのバージョンではまる

php

Shin x blogのPHPUnitでMockオブジェクトを使う を参考にPHP4にてPHPUnit+Mockオブジェクトが利用できる環境を構築した。が、simpleTestのバージョン1.04beta2では、SimpleMockクラスのコンストラクタの動作が変更されたらしく、上記ページの方法では正しく…

SEOは都市伝説が多い

今日の面白かった一言。たしかにその通りだと思う。