さて、リハビリの続き
クラスとはある機能を持った部品である
で、コンテンツはこの部品で構成されている訳だ
なので、クラスを作ったりする
というかですね、クラスを作る事を思い出すのだ!
思い出すぞーールキアー!
以前、いくつかクラスを作っておいた
現に、Flashコンテンツ部分は大体クラスで稼動している
結構他力本願だけど
たとえばボタン
http://www.sakaiden.com/?p=2885
クラスの基本的な作り方はというと・・・・
まず、
クラスファイルまでのパス
次に
クラス名
さらにその中身に
コンストラクタ
つまりは構造
プロパティ
つまりは自身が持つ値
メソッド
つまりは自身が持つ操作、もしくは機能
こんな感じだ
あと、細かく言うと
関数とかも少々
つまりー・・・・
こんなん
こんな風に記述されているわけだ
実際には
[as3]
///////////////////////////////////////////////////
//まずはこのクラスのパス
//sakaidenというディレクトリに入れているので、そのディレクトリパス
//
package sakaiden
{
///////////////////////////////////////////////////
//必要なクラスを取得しておく
import flash.display.*;
///////////////////////////////////////////////////
//クラスの設定
//クラス名や親クラスが何かを設定する
//これはムービークリップのサブクラス
public class SkdTestClass01 extends MovieClip
{
///////////////////////////////////////////////////
//コンストラクタ
//
public function SkdTestClass01 ()
{
};//constructor end
//コンストラクタココまで
////////////////////////////////////
///////////////////////////////////////////////////
//プロパティを設定
//変数をいろいろと準備しておく
//
//publicとすることで、どこからでもこのプロパティにアクセス出来る
public var myString:String = “ブロッコリー!”;//この変数は文字列の変数
//プライベートとするとこのクラス内でしかアクセスできない
private var myStringLoc:String = “”;
//プロパティココまで
////////////////////////////////////
///////////////////////////////////////////////////
//メソッド
//
public function traceStr():void
{
//プロパティの中身をプリントする
trace(myString);
return;
};//method end
//メソッドココまで
////////////////////////////////////
};//public end
};//class end
[/as3]
上のスクリプトの内容は
SkdTestClass01という名前のクラスで場所はsakaidenというディレクトリ
プロパティにmyStringを持っていて
メソッドにはtraceStrがある
myStringは文字列の変数
メソッドのtraceStrは、実行するとmyStringの中身を印字する様になっている
traceってのは、出力ウィンドウに指定の文字を印字する機能なのさ
CやMaxスクリプトならprint文の事よ
そしたら、今度は
Flash上でこのクラスを使ってみる
まず、なんでもいいのでインスタンスを準備する
インスタンスは・・・何でもいい、グラフィックが入っていても、入っていなくても
メニューの 修正 –> シンボルに変換
といった具合でインスタンス化できる
シンボルは、ライブラリに格納されるので
ライブラリ上でその内容の調整が出来る
次は
このインスタンスをさっき作ったクラスとしてみる
プロパティから、基本クラス設定でクラスまでのパスとクラス名を記述
クラスと基本クラスの違いは
基本クラスが親で、クラスとは自分自身のクラスのこと
親と子の違いがあるってだけ
今回はSkdTestClass01というのが親クラス、自分はtestという名前のクラスになって
このコンテンツ内の部品になるわけだ
ここまで出来たら
部品としてこのクラスが動くはずだぞ
なので動かしてみる
コンテンツのタイムライン上に直接このクラスを扱うスクリプトを記述してみる
こんな感じで
[as3]
trace(“——————————————————-\n作ったクラスをテストしてみる\n——————————————————-“)
//クラスのプロパティの中身をプリントしてみる
trace(testClassInstance.myString);
//クラスのメソッドを実行してみる
testClassInstance.traceStr();
//クラスのプロパティに値を代入してみる
testClassInstance.myString = “パセリ!”;
//クラスのメソッドを実行してみる
testClassInstance.traceStr();
[/as3]
まず、クラスが持っているプロパティにアクセスしてみる
次に、クラスが持っているメソッドを実行してみる
このクラスのプロパティはread and write、つまり読み書き可能な値なので
このプロパティに文字列を代入してみる
そしたらまた、メソッドを実行してみる
うん、ひとまず動いているみたいだぞ
動いたね~
いや~、いつでもこの動いた!
って感触はいいものだよ
よしここまで、基本的なことをノートしておけば
次に忘れてもまた思い出せるだろう
つーか忘れんなよ・・・
ということで、
一応サンプルでもどうぞ

ダウンロード:クラスを作る
他、クラスを作成する豆知識
インスタンスは基本的なプロパティを備えている
as3やflexには、いろいろなクラスが準備されている
クラス同士で網の目のようなくみ上げも出来る
そして、クラスからクラスを派生させることができる
次はこのクラスからクラスをやってみるかね
Pingback: ボタンをスイッチ化 « sakaiden