Flash OOPの勉強会(主催:クスール)に行って、数学を勉強してきました。

内容は、Matrixの話。

Matrixってヘルプ読んでも全然わからなかったんだけど、つまりは数学の行列ということらしい。

行列ってなんだったっけ!

習った覚えはあるけど内容はすっかり忘れていたわたし。
でも今日の話を聞いたらなんとなくわかりました。

多分、わかったつもりになっているだけなので、ここでまとめてしまいたいのだけど、ここ数日寝不足が続いていたので今日はもう早く寝て明日にしたいです。

果たして明日で上手くまとめられるのだろうか…

今日は面白そうだったので社長プロジェクト(?)をやっていたのだけど、AS3のヘンな所でハマってしまって、予想よりも時間がかかってしまった。

それでも早いよ!って言われたけど、AS3がもっとわかってたらもっと早いですよ。精進しますね。

で何かというと、String型の数値をNumber型に変換するところでつまづいてた。

var N:Number = string as Number;

↑これだとだめなのね。結果は0になっちゃってた。

parseFloat(string);

↑こうしないと駄目でした。結構初歩かもしれないけど、最初どこがマズいのかわからなくて小一時間ハマった。

AS3は、かなり細かいエラーが出るようになっているのだけど、エラーの内容がかなりわかりにくいというか、表現が曖昧なことがあったりで、慣れないとバグの箇所を特定するのも一苦労ですよ。ハァ。

今回の落とし穴ではコード自体は間違ってないのでエラーすら出ないからさらに「?」マーク出まくったわけですけど。ビバtrace

§

さらにさらに初歩の話で思い出したこと。

Numberの小数点以下を繰り上げるか切り捨てるかの関数Math.ceil()とMath.floor()。いつもどっちがどっちだっけーってなっちゃってたんだけど、「floor」が「床」でつまり切り捨て、「ceil」が「天井」でつまり繰り上げってコトだったのねー!

ちなみにこの前のAS2OOP講座で知った話ですゎょ。

as2の学校2日目レポートでEventDispatcherのことも書こうと思っていたんですが、AS2のコードなので、AS3で開発を始めた今となっては使えねぇナァ、と思いつつヘルプなどを読んで自分なりにAS3版を作ってみました。

Main.as(ドキュメントクラス)

package {  
import flash.display.MovieClip;  
import flash.events.Event;  
public class Main extends MovieClip {  
public function Main() {  
var dispatcher:CustomDispatcher = new CustomDispatcher("aho");  
dispatcher.addEventListener(CustomDispatcher.ACTION, actionHandler);  
dispatcher.doAction();  
}  
private function actionHandler(event:Event):void {  
trace("actionHandler: " + event);  
trace(event.type);  
}  
}  
}  

CustomDispatcher.as

package {  
import flash.events.EventDispatcher;  
import flash.events.Event;  
class CustomDispatcher extends EventDispatcher {  
public static var ACTION:String;  
function CustomDispatcher(string) {  
ACTION = string;  
}  
public function doAction():void {  
dispatchEvent(new Event(CustomDispatcher.ACTION));  
}  
}  
}  

こんな感じでよいものなのか。

keyboard_arrow_up