インデックス置き場はこちら
前回はこちら
●こんな大きいの、入らないよぉっ
スライダーを使って、今度はズームイン・ズームアウトに挑戦だ。画面に入らないくらいに大きくズームしてみようぜ。ズームしなくても元々画面からはみ出てるだろって言うツッコミはこの際ナシだ。
スクリプトを使ってスプライトの表示サイズを変える方法は分かってるな?今までに軽く流しもせずにごっそり飛ばしてきたが、_xscaleならびに_yscaleというプロパティを使うぞ。
読んで時の如く、_xscaleがx軸方向、_yscaleがy軸方向の倍率を設定する。単位はパーセンテージで当然デフォルトは100。これを大きくすれば大きく、小さくすれば小さくなる……が、限界はある。0より小さな数字は負数だが、この数値を負数にするとその絶対値パーセントの大きさで、左右もしくは上下が逆転した鏡像になる。言い方を変えると、このプロパティを使って反転もできるって言う。
まあなんだ。画像・スプライトのプロパティでSuzukaでが倍率、ParaFla!でサイズを弄くる時と同じね。このパラメータを弄った時も基準点が基準になるので、設定の方ちゃんとしておこうな。
スライダーの方の処理だが、極めて手抜きな感じで作るならonReleaseもしくはonMouseUpでスライダーの位置を割り出し、その位置に応じてターゲットとなるスプライトの_xscaleと_yscaleに同じ値を代入する感じで。もっとしっかり作るならonEnterFrameで。
サンプルでは、onPressでonEnterFrameに倍率変化処理メソッドを代入している。
slider.knob.onPress = function(){
this.startDrag(false,3,6,3,106);
slider.knob.onEnterFrame = function(){
this._parent.knobPosition = this._y-6;
this._parent.action();
};
slider.knob.onMouseUp = function(){
slider.knob.onEnterFrame = null;
this.stopDrag();
};
};
なんて参考にしにくいサンプル。例によってコピペは全角スペース注意な。そもそもコピペなんかしない方がいいと思うぞ。
this._parent.action()ってのが倍率を変化させたりするメソッド。もちろん別なところで宣言してある。要するに、さっき書いた通りonPressでonEnterFrameに、ノブの位置を親にチクる処理と、そのチクった位置情報でどうにかするメソッドを発動している。で、ボタンを放したらonEnterFrameに入れておいた処理をなかったことに。明日から仕事を休んではくれまいかと命令するわけだ。
慣れないうちはこんな面倒なことせず、onEnterFrame入れっぱなしでいいかも知んない。なんか、重くなるような気がしてなー。ついつい無意味にケチっちゃうんだよね。エコだって事にしておけばいいんだよ、こう言うのは。うん。

0