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

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

ActionScriptだけでUIを作る

MXMLを使わずに、ActionScriptだけでUIを作ることもできます。作り方は次のとおり。

  1. メインクラスを作る。このクラスは「flash.display.Sprite」を継承させる。
  2. メインクラスのコンストラクタで貼り付けるUIコンポーネントを生成。
  3. 作成したUIコンポーネントを貼り付ける。

単純なサンプル(ASOnly.as):

package {
    
    import flash.display.*;
    import flash.text.*; 
    
    /**
     * メインクラス
     * flash.display.Spriteを継承する。
     */
    public class ASOnly  extends Sprite  {
      
      /**
       * コンストラクタ
       */
      public function ASOnly() {
          
          // UIコンポーネントを生成
        var label:TextField=new TextField();
        label.text="Hello World!";
        addChild(label); // 貼り付ける
      }
    }
}

SWFへのコンパイルにはmxmlcを利用します。以下のようにasファイルを引数としてmxmlcを実行します。

mxmlc ASOnly.as

このとき、asファイルと同じディレクトリに「ASOnly-config.xml」を配置しておけば、コンパイルの設定ファイルとしてロードしてくれます。(Flexコンパイル時と同じ)

コンパイルした結果はこちら

はまり道

以下の問題は未解決です。まだまだなぞは多い。

Spriteを継承しない

Spriteを継承しなくてもいけるんでは!?と思って次のようにしてみましたが、何も表示されません。(コンパイルは通る。)

package {
    
    import flash.display.*;
    import flash.text.*; 
    
    /**
     * メインクラス
     */
    public class ASOnly {
      
      /**
       * コンストラクタ
       */
      public function ASOnly() {
        var stage:Sprite = new Sprite(); 
        var textField:TextField=new TextField();
        textField.text="Hello World!";
        stage.addChild(textField);
      }
    }
}
TextArea

TextFieldをTextAreaに変えてみたのですが、こちらも動作しません。このほか、Flexで使えていた「Label」や「Button」もことごとくダメ。

package {
    
    import flash.display.*;
    import flash.text.*; 
    import mx.controls.*;
    
    /**
     * メインクラス
     * flash.display.Spriteを継承する。
     */
    public class ASOnly  extends Sprite  {
      
      /**
       * コンストラクタ
       */
      public function ASOnly() {
        var label:TextArea=new TextArea();
        label.text="Hello World!";
        addChild(label); // 貼り付ける
      }
    }
}


参考:ActionScript 3.0メモ