Flash ActionScript3.0とclassの勉強

小亀珠美(デザイナー)
2.5次元の住人
Edge Animate勉強中。jsなにそれオイシイn⬅

今までFlash Lite1.1しか触った事ない私が会社でAS3.0を学びました。
(PGの木内さんにお勉強会をしてもらいました)

一切触れる事はなかったclassとはなんぞや、というお話ですw
まぁ実際のところ前の会社で知らず知らずに触っていたっぽいですが←

ということで今回は学んだことをブログに書いてみようと思います\(^o^)/

まずはActionScript3.0

衝撃だったのはシンボルに記述が出来なくなった事。

タイムラインのみの記述になったんですねー

「root」は絶対パス「this」は相対パスと色々あるようですが 今回はfunctionやvarなどが使われるActionScript3.0 functionとは何ぞやとなったわけですが、

function→関数を定義する
var→変数を定義する

ということらしいです。

1
2
3
4
5
6
7
8
9
例)
function hoge(x,y){
  trace(x+y);
  }

  hoge(10,20);

答)
A.10+20=30

上記のような定義をすれば処理が長くなっても簡単に実行出来るということ
では、例問題は完結している為、次の計算に生かす事が出来ない…
ではどうするのか、ここでvarを使います。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
例)
var a = sum(10,20);
var b = sum(5,5);

function sum(x,y){
  return x+y;
}

trace(sum(a,b));


答)
A.a=30
A.b=10
A.sum(a,b)=40

このような計算が出来るようになります。
*returnは引数を返してくれる。

凄いですね!
今まで意味を理解してあまり使っていなかったので理解すると楽しい

これを理解した上で、classをいじってみようと思います!!

お題)n.tax()で消費税を計算する

まずclassの作り方
sample.fla、sample.swfを入れたフォルダ内に適当に”sample”とつけたフォルダを作り中にNumberSample.asデータを作ります。

1
2
3
4
5
sample - sample.fla
       ∟ sample.swf

         sample(asを入れる為フォルダ名) 
            ∟ NumberSample.as

flashの1フレーム目に

1
2
3
4
5
6
7
8
9
import sample.*;


/*【import パッケージ.クラス名】*/
/*【import パッケージ.*;】*/

var n:sample.NumberSample = new sample.NumberSample(100);

trace(n.tax());

var 変数名:ClassName = new ClassName(数);という構造になり、classを定義するときにnewを使う。
(newをつける意味は謎…だったり…)

これでflashが出来上がったので準備OK
次にやることは消費税の計算!
今回は数字100を消費税込みでn.tax()で表示させる事。

作ったNumberSample.asを開き記述する。

!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package sample{ /*パッケージで囲う*/
    public class NumberSample{ /*パッケージの中にクラスを書く*/
        public var n:Number = 0;
        /*nを初期値で設定を定義*/
        
        public function NumberSample(n:Number){
            this.n = n;
          /*n:Numberをthis.nと定義*/
        }
        
        public function tax(){
            var i = 0.05;
            var t = this.n * i;
            return t;

            /*tax()で吐き出される関数を定義
            変数iに消費税(0.05)をいれ、変数tはthis.n、つまりflashに書いた
            var n:sample.NumberSample = new sample.NumberSample(100);の数字にiをかける。
            その引数をreturnで返す。*/
        }
    }
}

答)n.tax()=5

ぱっと見今まで分からなかったものも、ちゃんと順を追って理解していくと意外と分かりやすい
わからなかった時はもはや宇宙語にみえt(ry
わかるといってもclassの初期の初期なわけで…初期なわけで…

これを糧に次はMovieClipSampleをclassで動かせるように勉強したいと思います。