Flash ActionScript2.0 実践講座2:ActionScript2.0導入

本日の予定

先週の内容を復習した後、オブジェクト指向プログラミングとは何かということについて、もう一度復習します。オブジェクト指向についての理解を深めた上でその確認として、ActionScript2.0を用いたオブジェクト指向プログラミングの基礎を学んでいきます。

本日のスライド

サンプルファイル

目次

Flash応用講座 (2)

参考図書

今後の講義で参考となりそうな図書を以下に紹介します。より詳しくActionScriptによるオブジェクト指向プログラミングを学びたい人や、アルゴリズムによる形態の生成などに興味を持つ人は買ってみてください。

参考サイト

この講義でとりあげるFlashの実例として参考になりそうなサイトをいくつかピックアップしてみました。こちらも参考にしてみてください。

前回の授業の復習

オブジェクト指向ActionScript入門

インタフェイスと実装

クラス(class)とは

クラスとインスタンス

クラスの継承

ActionScript 2.0でのクラスの構造

class クラス名 {
    //プロパティ
    
    //コンストラクタ関数(※オブジェクト初期化の際に実行される関数)
    function クラス名(){
    }
    
    //メソッド
    function メソッド名(){
    }
    
    //関数
    function 関数名(){
	return(戻り値);
    }
}

例1:ImageViewerクラスの実装

class ImageViewer {
  
    //コンストラクタ関数
    function ImageViewer(ターゲット){
	//オブジェクトの初期化
    }
    
    //イメージを読み込んで表示
    function loadImage(URL:Strings){
	//イメージを読み込みと表示に関する命令
    }
}
//オブジェクトの初期化
var viewer:ImageViewer = new ImageViewer(this);
//イメージの読み込み
viewer.loadImage("photo.jpg");
class ImageViewer {
    private var container_mc:MovieClip;//写真を配置するムービークリップ
    //コンストラクタ関数
    public function ImageViewer(target:MovieClip) {
	//空ムービークリップ"container_mc"を生成
	container_mc 
	    = target.createEmptyMovieClip("container_mc", target.getNextHighestDepth());
    }
    public function loadImage(URL:String):Void {
	//"container_mc"にURLにあるイメージファイルをロード
	container_mc.loadMovie(URL);
    }
}

例2:MovieClipクラスの拡張

class Ball extends MovieClip {
    var xspeed:Number, yspeed:Number;
    function Ball() {
	xspeed = Math.random()*20-10;
	yspeed = Math.random()*20-10;
    }
    function onEnterFrame():Void {
	_x += xspeed;
	_y += yspeed;
	if (_x>Stage.width || _x<0) {
	    xspeed *= -1;
	}
	if (_y>Stage.height || _y<0) {
	    yspeed *= -1;
	}
    }
}

例3:沢山のボールクラスを複製

//オブジェクトの初期化
var balls:CopyBalls = new CopyBalls(this, 100);
class CopyBalls {
    var target_mc:MovieClip;
    var num:Number;
    function CopyBalls(mc:MovieClip, n:Number) {
	target_mc = mc;
	num = n;
	makeBalls();
    }
    function makeBalls():Void {
	for (var i:Number = 0; i<num; i++) {
	    var ball_mc:MovieClip 
	    = target_mc.attachMovie("Ball", "ball_mc"+i, mc.getNextHighestDepth());
	    ball_mc._x = Math.random()*Stage.width;
	    ball_mc._y = Math.random()*Stage.height;
	}
    }
}

今週の課題

Comments

コメントはありません

Add Comment

このアイテムは閉鎖されました。このアイテムへのコメントの追加、投票はできません。

トップページに戻る