2010年2月22日月曜日

行列を入れ替える

  1. 入れ替えたい部分を選択してコピー
  2. 変更した項目を挿入したいセルを選択
  3. 右クリックで『形式を指定して貼付け』
  4. 下の方にある『行列を入れ替える』をチェックして貼付け

二度も聞いてしまってスミマセン onz

2010年2月18日木曜日

1180: 未定義である可能性が高いメソッド addFrameScript の呼び出しです。

「1180: 未定義である可能性が高いメソッド addFrameScript の呼び出しです。」

なんぞなんぞと探しまわってたら、ドキュメントクラスが Sprite を継承してた onz

FlashDevelopで AS3 Project を開始すると、メインクラスが Sprite を継承するんですよね。んで、Flash IDE Project でやるときに、ついうっかりやっちゃった次第です。なさけねー。

参考サイト
【AS3.0】ドキュメントに載らないメソッド(addFrameScript)

DisplayObject におけるデストラクタ呼び出し

ActionScript にはデストラクタがなかったはずですが、ちゃんと EventListner をクリアしておかないと、GCの対象にならずにメモリを食いつぶすことがあります。デストラクタがあれば、そこに removeEventListener 関係の仕込を入れておくのですが、残念ながらないと。かといって、都度デストラクタ関数を呼び出すのも面倒です。

で、DisplayObject については、コンテナから remove されたときにイベントを発行してくれるので、Event.REMOVED_FROM_STAGE を設定しておけばいい感じだと思います。remove した displayObject インスタンスを再利用するつもりなら、この限りではないのでご注意を。

package {
 
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class Hoge extends Sprite
 {
  public function Hoge():void 
  {
   addEventListener(Event.REMOVED_FROM_STAGE, 
    function(e:Event):void {
     removeEventListener(Event.REMOVED_FROM_STAGE, arguments.callee);
     destruct();
    }
   );
  }
  
  public function destruct():void 
  {
   // remove...remove...delete...remove...
  }
 }
}

Event.REMOVED_FROM_STAGE も、忘れず remove しておきましょう。

2010年2月17日水曜日

ジェスチャー・コンピューティングって言うそうです

g-speak overview 1828121108 from john underkoffler on Vimeo.

ぐへぇ。カッコいい。これにシートを貼り付けるだけでモニタになるやつや、3Dがひっついたらめちゃくちゃかっこいいですよ。

「この機能は5年後には普通のコンピュータに導入されているはず」

今から作業スペースの確保と、筋トレやっといたほうがよさそう。

参考サイト
「マイノリティーリポート」そのものだ!―Oblong、驚異のジェスチャー・コンピューティングをTEDでデモ

2010年2月16日火曜日

ActionScript で定義した JavaScript を実行する

うまい表現がみつからないんですが、そういうことも出来るんだなとわかったのでメモ。

ExternalInterface クラスを利用して、JavaScript 上の任意の関数を呼び出すことができますが、ActionScript 内に JavaScript を記述して、それを実行してやることができます。例えば

ExternalInterface.call("function() { alert('hoge'); }");

としてやると、JavaScript側に何も書かなくても

と、出してくれます。何か利用出来そうな気がするけど、とりあえず覚えておこう。