無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

Flex

キー操作でカメラを動かすサンプル

キーイベントを拾ってカメラを動かすサンプルを書いてみました。→キーイベントを拾ってカメラを動かすサンプル ←→キーで旋回、 ↑↓キーで前後に移動します。 動きがわかるように空間には点をちりばめています。(ParticleFieldを利用) はまりポイントは以下か…

primitivesを並べてみる

Papervision3Dでは、org.papervision3d.objects.primitivesパッケージ以下に、立方体とか球といった基本的なオブジェクトが用意されています。どんなのがあるのかな、ということで、primitivesパッケージ以下のオブジェクトを並べてみました。 動いていると…

Flex SDK + Papervision3Dで球を描く&回転させるチュートリアル

Flex SDK + Papervision3Dで、ワイヤーフレームの球を描いて 回転させるまでのチュートリアルです。Flex SDK 4 + Papervision3D 2.1の組み合わせで試してみましたが、特に問題なくビルドできましたよと。お手軽にFlash 3Dで遊べます。 サマリ Flex SDKのダウ…

スプライトのあたり判定で使う領域を指定する

Sprite#hitAreaで、スプライトのあたり判定で使う領域を指定できます。 領域は別のスプライトで指定します。 hitAreaとしたスプライトは非表示でもOK package { import flash.display.*; import flash.events.MouseEvent; import flash.text.*; // 別のスプ…

マスクはスプライトごとに必要。

DisplayObject#maskを使うとスプライトを切り抜くことができますが、複数のスプライトを同じ形状で切り抜きたい場合、スプライトごとにマスク用スプライトを用意する必要があります。 複数のスプライトのmaskとして同一のスプライトを設定した場合、後に設定…

各種Transitionのサンプル

tweenerではtransitionプロパティを指定することで属性値の変化量を制御することができます。値を線形に変化させるLiner以外にも、組み込みでさまざまなTransitionが利用可能です。 ということで、各種Transitionの動作サンプルを作ってみました。 →各種Tran…

tweenerでスプライトを移動するアニメーションを作る。

tweenerはFlex/Flashで使えるトウィーンライブラリです。定期的にスプライトの属性を変更することで、 スプライトの移動 スプライトの透明化 といったアニメーションがさくっと作成できます。 インストール tweenerのサイトからダウンロードします。Flexで使…

ActionScript3の「for in」では、クラスのメソッド、フィールドは列挙されない

ActionScript3の「for .. in」では、静的に定義したクラスのメソッド/フィールドは列挙されません。 クラスフィールド、インスタンスフィールドとも。 Dynamicクラスも静的に定義したメソッドやフィールドは列挙されません。 ただし、動的に追加した属性は列…

ArrayCollectionで配列の変更を検知するサンプル

mx.collections.ArrayCollectionを使うと配列の変更をイベントリスナーの仕組みで検知することができます。 コンストラクタでソースとなる配列を指定してArrayCollectionを作成し、 イベントリスナーを設定した上で、 ArrayCollectionのAPIを呼び出して配列…

maskを使ってスプライトを切り抜くサンプル

Sprite#maskを使って、スプライトを切り抜く(スプライトの特定範囲のみ表示する)ことができます。Sprite#mask属性値として任意のDisplayObjectを設定すればOK。 package { import mx.utils.*; import flash.display.*; import flash.text.*; import flash.ex…

JavaScriptからFlexのAPIを呼び出すサンプル

FlexからJavaScript関数を呼び出す場合と同様、ExternalInterfaceを使います。 呼び出される側のswf : package { import mx.utils.*; import flash.display.*; import flash.text.*; import flash.external.*; // JavaScriptからのメソッド呼び出しを受け付…

Timerを使うサンプル

Timerを使って定期的に処理を実行するサンプルです。Timerの基本的な使い方は次の通り。 引数で「次の呼び出しまでの待ち時間(ミリ秒)」と「実行回数」を指定してTimerを作成します。 「実行回数」を0にすると無限に実行されます。 「addEventListener」で定…

スプライトをドラッグするサンプル

Sprite#startDrag()で簡単に実現できます。 Sprite#startDrag()でドラッグ開始、Sprite#stopDrag()でドラッグ終了です。それぞれ、マウスダウン、マウスアップとかに割り当てておけばOK。 2つめの引数でドラッグ可能な領域を指定することもできます。 packag…

マウスオーバーを処理するサンプル

MouseEvent.MOUSE_OVERのイベントハンドラを設定するだけ。 Graphicsを使って書いた円や線もうまいこと当たり判定してくれます。 Filterを利用して作成した影には反応しないようだ。 package { import flash.display.*; import flash.filters.*; import flas…

ObjectProxyでオブジェクトの属性変更を監視するサンプル

ObjectProxyを使うとオブジェクトの属性変更を監視する仕組みがさくっと作れます。使い方は以下の通り。 監視するオブジェクトを作成。 作成したオブジェクトを引数として、ObjectProxyを作成してラップ。 「addEventListener()」でObjectProxyに属性変更リ…

フィルタを使うサンプル

フィルタを使うと、スプライトやビットマップにドロップシャドウやブラーなどの効果を適用することができます。 フィルタはflash.filtersパッケージ配下にいろいろあります。 スプライトなどDisplayObject派生のコンポーネントであれば、フィルタを作成してf…

XMLリテラルを使った文字列生成の性能を測ってみた。

昨日の続き。XMLリテラルを使って文字列を生成した場合の性能を測ってみました。 20文字程度の文字列を、「文字列連結」「XMLリテラル」「XMLリテラル+埋め込み」のそれぞれで50000回生成した場合の所用時間を計測。 それぞれ5回試行し、平均を取っています…

ActionScriptで長めの複数行文字列をさくっと作る

ActionScriptで長めの複数行文字列を作るのってメンドウですよね。Rubyみたいにヒアドキュメントとか使えればいいのにー。という時にXMLリテラルが使えます! // XMLリテラルをヒアドキュメント風に使う! XML.ignoreWhitespace = false;// デフォルトだとテキ…

StringUtil#substituteで簡易テンプレートを使う。

StringUtil#substituteでテンプレート文字列中の「{数字}」を任意の値で置き換えた文字列を生成できます。 // テンプレートの「{数字}」を置換した文字列を生成する stdout.text = StringUtil.substitute( "name : {0}, age : {1}", "mii", 1); // → name : …

オブジェクトの属性一覧を生成する

ObjectUtil#toStringでオブジェクトの属性一覧を示す文字列を生成できます。 // オブジェクトの属性一覧を表示 var obj:Object = { a:10, b:"bbb", c:true, d:[1,2,3,4,5], e:{foo:"foo",hoge:"hoge"}, f:function():void{} }; stdout.text = ObjectUtil.toS…

JSONBrokerのActionScript版クライアントを書いた

「RubyクラスをJSONでアクセスできるWebサービス化する」で作ったJSONBroker(任意のRubyクラスのAPIをJSON-RPCライクなプロトコルでアクセスできるWebサービスとして公開するための簡易ユーテイリティ)のActionScript版クライアントを書きました。前に作った…

配列の便利APIいろいろ

JavaScriptと一緒かと思ったら微妙に拡張されてますね! > ActionScriptの配列。ということで、便利そうなAPIを使うサンプルを書いてみました。使ってみたAPIは以下。 Array#forEach 配列の要素を順番に取り出します。forループの代わりに。 Array#map 配列の…

配列をソートするサンプル

配列をソートするAPIとして、Array#sortとArray#sortOnが提供されています。 Array#sort 配列の要素をソートします。 引数で比較関数(第一引数)とオプション(第二引数)が指定できます。 比較関数を指定することで、任意のロジックに基づくソートが可能です。…

オブジェクトごとの一意なIDを生成する

mx.utils.NameUtil#createUniqueName()でオブジェクトの一意なIDを作成できます。 IDは「無修飾のクラス名+番号」になります。 「無修飾のクラス名」なら、パッケージが違う同名クラスだと同じIDになるのでは、と思いきや、番号がすべてのオブジェクトで一意…

Dictionary

Flexで、キーと値をペアで保持する構造(rubyでいうHashてきなもの)を使いたい場合、flash.utils.Dictionaryが使えます。 JavaScriptだとObjectで何とかしますが(Flexでも同じように何とかできますが)、 Objectと違って、Dictionaryではキーにオブジェクトが…

アスタリスク

ActionScriptの型指定では、「*」は型指定なしを意味します。任意の型とも若干意味が違っていて、 任意値を代入できて、 かつ、任意の値として取り出すことができます。 // 任意の値を代入でき var a:* = "foo"; var b:Object = "foo"; // 任意の値として取…

枠内を画像で塗りつぶすサンプル

Graphics#beginBitmapFillを使って、枠内を画像で塗りつぶすサンプルです。 画像はswf内にアセットとして埋め込んだモノを使用してます。アセットの使い方はこちらを参照。 あとは、beginBitmapFill→drawRect→endFillでOK。 package { import flash.display.…

日時をフォーマットするサンプル

日時(Date)のフォーマットにはmx.formatters.DateFormatterが使えます。以下は、現在時刻をフォーマットして表示するサンプルです。 package { import flash.display.*; import flash.text.*; import mx.formatters.*; public class Sample extends Sprite {…

FireBugのコンソールに行番号付きでスタックトレースを表示する手順

FireBugのコンソールに行番号付きでswfで発生した例外のスタックトレースを表示する手順です。ポイントは以下。 デバック版Flash Playerでswfを実行。 →発生した例外からスタックトレースが取得できるようになります。 コンパイルオプションでデバッグをオン…

asとis

「as」演算子で型キャスト、「is」演算子で互換性チェックができます。 package { import flash.display.*; import flash.text.*; public class AsIsSample extends Sprite { public function AsIsSample(){ var str:String = "" var a:Object = "a"; // is…

名前空間

Flex(というかActionScript3)では、メソッドやフィールドに名前空間を設定できます。 名前空間を設定されたメソッドは、名前空間を明示(またはuse)して呼び出す必要があります。 publicやprivateといったアクセス制御指定子も特殊な名前空間として実装されて…

privateなクラスを定義する方法

Flexでprivateなクラスを定義する場合、パッケージ定義の外部で定義します。 Flexでは、1つのソースファイルに複数のクラスを含めることが可能ですが、 ファイルの外部にあるコードで使用できるのは各ファイルのクラス 1 つだけ。各ファイルのクラスのうち1…

Proxyを使ってオブジェクトのメソッド呼び出しをインターセプトするサンプル

Proxyを使うと、オブジェクトのメソッド呼び出しやプロパティへのアクセスをインターセプトする仕組みが作れます。 機能的にはJavaのProxyに近い感じです。 メソッド以外にも、属性へのアクセスや「for...in」「for...each in 」で属性を列挙された場合の動…

クリップボードの値を更新するサンプル

クリップボードの値を更新するサンプルです。System#setClipboard()でさくっと設定できます。 package { import flash.display.*; import flash.system.System; public class SetClipBoard extends Sprite { public function SetClipBoard(){ // クリップボ…

グラデーションする四角をいろいろ描いてみるサンプル

グラデーションする四角を描くには、Graphics#beginGradientFill()を設定したあと、Graphics#drawRect()で四角を描画します。 グラデーションの種別(線or放射)とか色など、いろいろパラメータが指定できますが、まぁ、ドキュメントを参照ということで。(→Gra…

HTTPでデータを取得するサンプル

FlexというかActionScriptで、HTTPでサイトに接続しデータを取得するサンプルです。クロスドメインまわりのことがまだ良くわかってないので、とりあえず同じサイトのデータを取得してます。 package { import flash.display.Sprite; import flash.text.*; im…

ActionScript3ではthisが省略できるのです。

ActionScript3とかもはや記憶にあるはずもなく、「まぁ、JavaScriptと似たようなもんだろー」、ということで気合で書き進めているわけですが、ここで一つ大きな違いを発見。ActionScript3ではthisが省略できるのです。 package sample { public class Kitten…

log.asを使ってみる

今更ながらlog.asなるものを発見したので使ってみます。これを使うと、「log()」関数1発で、FlexからFireBugのコンソールにデータを出力することができます。1つのソースファイルだけでできていて、プロジェクトへの導入も簡単。 log.asのソースをコピーして…

JSONをエンコード/デコードするサンプル

as3corelibで提供されているJSONユーティリティを使って、JSONのエンコードとデコードを行うサンプルです。 package { import flash.display.*; import flash.text.*; import com.adobe.serialization.json.JSON; public class JsonSample extends Sprite { …

flexTasksでFlexをコンパイルする

Flex SDK 3.1.0をダウンロードすると、flexTasksなるAntタスクが添付されていたので、それを利用してのmxmlのコンパイルを試してみました。以下、手順のメモです。 1.flexTasks.jarをAntのライブラリに追加する。 Flex SDKのアーカイブを展開したディレクト…

続 FlashとCanvasのどっちが早いか、四角を4000個描いて試してみた

やっぱり、ちゃんと測ってみようかな。ということで、プログラム上で画像を描き終わるまで(=graphics.drawRectやctx.fillRectから復帰するまで)の処理時間を出力するようにしてみました。 →Flashで描く →Canvas+JavaScriptで描く(ExplorerCanvasを設定済み。…

FlashとCanvasのどっちが早いか、四角を4000個描いて試してみた

FlashとCanvas+JavaScriptのどっちが描画が早いか、四角を16*16*16=4096個描くスクリプトを書いて試してみました。 →Flashで描く →Canvas+JavaScriptで描く(ExplorerCanvasを設定済み。IEでも見れます。) ちゃんとは計ってないけど、何回かリロードして試し…

ASTRAを使ってグラフを描いてみる

YahooのUIコンポーネントライブラリ「ASTRA」を使って棒グラフを描いてみます。 ダウンロード Flex SDKでASTRAを使うために必要なモノは次の2つです。 ASTRA ASTRAのサイトからダウンロードします。 Flash CS3のコアクラス(fl.core.UIComponentなど)のソース…

ビヘイビア

ビヘイビアを使うと、UIコンポーネントに簡単にエフェクトを適用できます。 ビヘイビア = トリガ + エフェクト。マウスオーバーなどのイベント(トリガ)に、イベント発生時の効果(エフェクト)を組み合わせたもの。 mxml内で宣言的に設定することができます。 …

スタイルを使う

Flexアプリケーションの外観は、スタイルの設定で変更できます。 アプリケーションの背景色変更のサンプル サンプル: <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Style> Application { backgr…</mx:style></mx:application>

JavaScript関数の呼び出し

swfからJavaScriptの関数を呼び出すには「ExternalInterface」を使います。サンプル(ExternalInterfaceSample.as): package { import flash.display.*; import flash.external.*; /** * メインクラス */ public class ExternalInterfaceSample extends Sprit…

SimpleButtonで簡単ボタン

「flash.display.SimpleButton」を使うと簡単にボタンを作成できます。基本的な使い方は次の通り。 SimpleButtonのインスタンスを作成します。 初期状態、押された状態、マウスが乗った状態のUIをそれぞれ指定します。 あたり判定に使うDisplayObjectを設定…

swfに埋め込んだ画像の表示

画像をswfに埋め込むことで、ロードによる遅延なく画像を表示することができます。 ○外部からの読み込みと違い、swfと共にダウンロードされるので読み込みに時間がかからない。 ×swfのサイズが大きくなる。 ×画像を差し替えるにはswfの再作成が必要。 埋め込…

外部イメージのロード

外部イメージをロードして貼り付けるにはflash.display.Loaderを使用します。単純なサンプル(SWFと同じデイレクトリの画像を読んで表示する): package { import flash.display.*; import flash.net.*; /** * メインクラス */ public class ShowImage extends…

ActionScriptだけでUIを作る

MXMLを使わずに、ActionScriptだけでUIを作ることもできます。作り方は次のとおり。 メインクラスを作る。このクラスは「flash.display.Sprite」を継承させる。 メインクラスのコンストラクタで貼り付けるUIコンポーネントを生成。 作成したUIコンポーネント…