homeへのリンクです。

flashでAmazonECS 7

2006年07月20日

もうだいぶたってしまったが、flash9のパブリックアルファが出た。
flash9では、AS3.0をとりあえず扱えるとのこと。
将来的に、フラッシュのまっとうなスクリプトはAS3.0になるようなので、flash9への移行作業を始めることにする。

とりあえず
http://www.adobe.com/devnet/actionscript/articles/actionscript_tips.html
http://livedocs.macromedia.com/flex/2/langref/index.html
を参考に修正していく。

まずは、Mainから。

AS2.0では、

import classes.main.*;
class Main extends MovieClip{
}

と書いていたが、
AS3.0では、

package classes.main{
   import flash.display.*;
   public class Main extends MovieClip{
   }
}

※flash.display.MovieClipをインポートしておかないと、MovieClipは使えない。
※public classとクラスのスコープを定義しないと、

ReferenceError: Error #1065: 変数 Main は定義されていません。

という、意味不明のアラートが出る。

AS2.0までは、一番上のレイヤー(一番最後にロードされるから)にMainクラスを割り当てたMainムービークリップを配置して、必要最低限のロードの完了をonLoadイベントで確認して、全ての処理を開始していたが、AS3.0では、Document classという設定ができるようになっていて、swfのrootにクラス定義ができるようになったので、Mainクラスは、Document classに設定して、最低限のロードの確認はloadInfoプロパティを使う。

※Document classの設定はステージのプロパティで行う。

AS3.0からは、MovieClipクラスにonLoadイベントは無くなっており、変わりにloadInfoというプロパティを、displayObjectクラスから継承している。
使い方以下のような感じ。

package classes.main{
   import flash.display.*;
   import flash.events.*;
   public class Main extends MovieClip{
      public function Main(){
         this.loaderInfo.addEventListener(Event.COMPLETE, myOnLoad);
         private function myOnLoad(eventObj:Event):void{
            trace("onload");
         }
      }
   }
}