AS2恐るべし!!
本日、新しく某メーカーから出る携帯の機種にプリインストールされる待ち受けを作ってくれとの依頼。
まあ、普通の待ちうけでランダムで画像を表示。
特にFlashlite1.1で作る必要も無く、余裕をぶっこいていました。
時間的に余裕があるのでAS2でクラス化して作ろうと思い、さっと作り、
デバイスセントラルでプレビューでまったく問題ないので、
納品用のメールを書こうかと。
その前に、普通にフラッシュプレイヤーで見てみようと思い、
プレビューして愕然!!!!!!!
なんと、乱数を拾わずに一定の位置でフレームが止まってしまう。。。。
1時間ほどいじり倒したがまったく変わらず、
ちなみにその構成は、
普通にルート上にフレームわけして画像を配置。
乱数を生成→乱数からフレーム数に変換→単純に「gotoAndStop」に代入→ルート上のフレームに止まる。
止まったら画像の上に敷いたフィルターに独自トゥイーンファンクションでホワイトアウト。
どうもフィルターアクションが干渉していたみたいで、
画像をまとめてムービークリップ化そのなかでフレーム移動に変えたら、
問題なく動きほっと。
最近、AS3で様々なFlashを構築しているのだが、そんな問題なかった気がする。
AS2恐ろしい!!
AS3 メモ preloader
とりあえず、「root」用のプリローダーをメモ。
package{
import flash.display.MovieClip;
import flash.events.*;
//クラス設定
public class Preloader extends MovieClip {
public var _mc:MovieClip;
/**コンストラクタ**/
public function Preloader(_mc) {
_mc.addEventListener(Event.ENTER_FRAME, loader);
//ローダー関数定義
function loader(evt:Event):void {
//SWFファイル容量取得
var totalBytes:uint = _mc.loaderInfo.bytesTotal;
//読み込みとトータルのパーセント算出
var loadPer:uint = Math.floor(_mc.loaderInfo.bytesLoaded / totalBytes * 100);
//読み込みが100%以上になったら
if (loadPer == 100) {
//フレームを読み込み完了フレームに送る
_mc.gotoAndStop("Stage");
//ローダーリスナーを削除
_mc.removeEventListener(Event.ENTER_FRAME, loader);
} else {
//上記をテキストに代入
_mc.Partext.text = String(loadPer)+" %";
}
}
}
}
}
こんな感じ。
最初のころは、rootの参照がわからず、苦労!?
それも解決したので、以外にスムーズにクラス化。
作業も短縮できそうです。
AS3 メモ
今までめんどくさかったので全部FLAファイル内にスクリプトを記述。
しかし、そうもいかなくなったので、
ここで思いっきり方向転換。
ちょっとわかってきたので、忘れないようにMEMO。
クラスから別クラス変数にアクセス。
コンストラクタ内に実行ファンクションをおいておくと簡単にアクセスできた。
別クラス(Betu.as)ないのhoge0にアクセスしたい。(ちなみにルートにインポートされていると仮定します)
var hoge0:String = "アクセスしまっせ";
public class Jikko{
public var _mc:MovieClip;
public function Jikko(_mc){
_mc.addEventLieterner(Event.ENTER_FRAME,);
//実行ファンクション
function jikkofunc(evt:Event):void{
trace(_mc.hoge0);
}
}
}
//出力
あくせすしまっせ
あくまでメモなので。
あんまり突っ込まないでね。
