動きをつけよう(onEnterFrameリスナ)
ActionScript2.0の関数定義
- 先週の国旗の課題を, メソッド
fillCircle,drawCircle
を用いて修正しよう. fillCircle,drawCircle
を真似て, 長方形の枠を描く関数 drawRect, 塗りつぶされた長方形を描くメソッドfillRect
を定義しよう. 引数は次のようにする.
つまり,drawRect(mc:MovieClip,x:Number, y:Number,width:Number,height:Number):Void; fillRect(mc:MovieClip,x:Number, y:Number,width:Number,height:Number,rgb:Number,alpha:Number):Void; // (x,y)は左上の点の座標. widthは幅, heightは高さ, rgbは色のRGB値, alphaは不透明度のalpha値
みたいに書くってことです. Flash Lite 3.1 以降では、組み込みの BitmapData.fillRect メソッドがあります. 引数も機能も上とは異なります.function drawRect(mc:MovieClip,x:Number, y:Number,width:Number,height:Number):Void{ //関数定義の内容 return; } function fillRect(mc:MovieClip,x:Number, y:Number,width:Number,height:Number,rgb:Number,alpha:Number):Void{ //関数定義の内容 return; }
課題
先週の国旗の課題を, メソッドfillRect,drawRect
を用いて修正しよう.
平行移動, 回転, 拡大縮小, 透明化 --- オブジェクトとプロパティ
上記の課題で, mcはMovieClip
という型を持つオブジェクトです. オブジェクトは,
mc._x のような書式でアクセスできるプロパティを持っていることがあります.
どのようなプロパティがあるかは, ReferenceでMovieClip
を検索してみましょう.
このプロパティは参照できます. そして許される場合は変更できます.
C言語の構造体をイメージするといいでしょう.
MovieClip
オブジェクトは複数作ることができ, その間に親子関係を持たせることができます.
課題
- 例えば,
mc._x=30; mc._y+=50;
などのようにして_x,_y,_xscale,_rotation などの値を変更して, プレビューしてみよう - これらのプロパティがどういう意味を持つか調べよう. _x,_y,_xscale,_rotation などの値を変更してみよう
- 他にどんなプロパティがあるか調べ, 変更してその効果を観察してみよう.
動かしてみよう -- イベントハンドラ
Flashでは, 1秒間に, 決められただけframe(フレーム)が進みます. frameが進むというイベントが発生するごとに, オブジェクトのonEnterFrame
というメソッドが実行されます. このようなメソッドをイベントハンドラといい, その他にも, マウスが特定の位置に来たときに実行されるようなイベントハンドラもあります. イベントハンドラの中でオブジェクトのプロパティを変更することにより, オブジェクトが「動く」ようにすることができます. 次のmain.asの例で見ましょう.
手順としては, (mobileGraphicsと同様に)プロジェクトtestmovementを新たに作り, その中にtestmovement.flaを作り,
そこから, 新しいmain.asを#include
するということです.