Flash研究室の最近のブログ記事
Flash Line 2.0 のコンテンツはActionScript 2.0でコーディングするが、どうやってFlex 3でコンパイルするのかわからない(そもそもできるのか?)。コンパイルできても、auケータイで動かないものができたりする。で、探し当てたのが、MTASC。なかなかグッドなコンパイラである。
なにしろ、Linuxでコンパイルできるので、viでエディットできたり、コンパイルでできたswfファイルをmakeで直接apache下にコピーできたり、いいこと尽くめ。
MTASCのコンパイルスイッチの設定例は、ここの下のほうに解説されている。makeファイルは以下のようなかんじになる。
hoge.swf: hoge.as
mtasc -swf hoge.swf -main hoge.as -version 7 \
-header 240:240:30 -cp ${MTASK}/std
auケータイのFlash Lite 2.0プレイヤでニコニコ動画がみれるが、1秒1コマのほどんど紙芝居レベルになっている。実際どのへんまでチューニングできるか、ニコニコ動画の仕組みを参考にして試作してみた。
結論だけ書くと、サイズはQCIF(176×144)で、5~6コマ/秒が限界。あと、ニコニコと同じく手回し式となる。すなわち、「使い物にならない」ことがわかった。auのFlash Lite 2.0、制約多すぎ!どうにかして欲しい。
まあ、ActionScriptのいい勉強になったので、個人的には収穫はあった。コアとなるコードだけ公開すると、
private function onKeyDown(){
if(back_state == 0){
back_state = 1;
loader.loadClip("cgi-bin/video", back_video);
}
}
private function onTick():Void{
if(front_state == 1){ // playing
if(tick < 5){
front_video._x -= 176;
tick ++;
}
if(tick >= 5){
front_state = 0; // played
}
}
if(front_state == 0){ // played
if(back_state == 2){ // loaded
front_video._x = 0;
front_video._y = 300;
front_video._visible = false;
{
var tmp:MovieClip;
tmp = front_video;
front_video = back_video;
back_video = tmp;
}
front_video._x = 32;
front_video._y = 0;
tick = 1;
back_state = 0; // empty
front_state = 1; // playing
}
}
}
function onLoadComplete(mc:MovieClip):Void{
if(back_state == 1){
back_state = 2;
}
}
要は、なにかキーを押したら、JPEGファイル(5コマ分の画像が納められている)をダウンロードして、200ミリ秒間隔で表示コマをずらしていくという方式。


