web,direction,planning,graphicdesign

2009年4月23日木曜日

ActionScript カスタムクラスの定義

カスタムクラスのクラス名とファイル名を同じにする必要がある。

package パッケージ名{

//インポート
import 読み込むクラス名;

public class クラス名{

//クラスプロパティ
public static var プロパティ名;

//インスタンスプロパティ
public var プロパティ名;

//コンストラクタ
public function クラス名(引数:データ型){
//インスタンスが生成されたときに実行するスクリプト
}

//クラスメソッド
public static function メソッド名(引数:データ型):データ型{
//メソッドの動作を定義するスクリプト
}

//インスタンスメソッド
public function メソッド名(引数:データ型):データ型{
//メソッドの動作を定義するスクリプト
}
}
}


例)ボールが移動して壁に跳ね返るサンプル

Ball.as

package{
//インポート
import flash.display.MovieClip;
import flash.events.Event;

public class Ball {
//クラスプロパティ
//インスタンスの数
public static var instanceNum:Number = 0;

//インスタンスプロパティ
//ボールのムービークリップ
public var myBall:MovieClip;
//ボールの半径
public var radius:Number;
//x軸方向の速度
public var myXspeed:Number;
//y軸方向の速度
public var myYspeed:Number;

//コンストラクタ
public function Ball(ball:MovieClip){
//ボールのムービークリップをmyBallに格納
myBall = ball;
//ボールの半径をradiusに格納
radius = myBall.width / 2;
//インスタンスの数を数える
instanceNum++;
}

//クラスメソッド
//インスタンスの数を出力する
public function printInstanceNum():void{
trace("現在のインスタンスの数"+instanceNum);
}

//インスタンスメソッド
//円を描画する
public function moveBall(xspeed:int,yspeed:int):void{
//速度をmyXspeed、myYspeedに格納する
myXspeed = xspeed;
myYspeed = yspeed;

//フレームが再生されるたびにenterFrameHandlerを実行
myBall.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}

//ボールを動かす
private function enterFrameHandler(event:Event):void{
//ボールを移動させる
myBall.x += myXspeed;
myBall.y += myYspeed;

//右壁で跳ね返る
if(myBall.x + radius > myBall.stage.stageWidth){
myBall.x = myBall.stage.stageWidth - radius;
myXspeed = -myXspeed;
}

//左壁で跳ね返る
if(myBall.x - radius < 0){
myBall.x = radius;
myXspeed = -myXspeed;
}

//上壁で跳ね返る
if(myBall.y + radius > myBall.stage.stageHeight){
myBall.y = myBall.stage.stageHeight - radius;
myYspeed = -myYspeed;
}

//下壁で跳ね返る
if(myBall.y - radius < 0){
myBall.y = radius;
myYspeed = -myYspeed;
}

}
}
}

sample.fla

//Ball クラスからインスタンスを作る
var ball1:Ball = new Ball(ball1_mc);

//メソッドを実行
ball1.moveBall(10,-5);

2009年4月20日月曜日

ActionScript XMLファイルの読み込み

1、URLLoaderオブジェクトの作成
2、URLLoader.load()メソッドによるXMLファイルのロード


URLLoaderクラスでは読み込んだデータはテキストデータとしてURLLoaderオブジェクトのdataプロパティに格納されます。
XMLファイルの内容をdataプロパティから取得できるのはファイルのダウンロードが完了してからになります(非同期処理)。


例)

var xmlLoader:URLLoader = new URLLoader();
xmlLoader.addEventLitener(Event.COMPLETE,xComplete);
xmlLoader.load(new URLRequest("sample.xml"));
function xComplete(evt:Event):void{
trace(xmlLoader.data);
}

2009年4月10日金曜日

ActionScript 外部イメージの読み込み

Loaderオブジェクトの作成
Loarder.load()メソッドによる外部イメージファイルのロード
loaderオブジェクトを表示リストに追加

例)

var loader:Loadr = new Loader();
var urlReq:URLRequest = new URLRequest("photo.jpg");
loader.load(urlReq);
addChild(loader);

2009年4月8日水曜日

フィルタの適用と削除

*表示オブジェクトへのフィルタの適用

○一つしか適用できない

表示オブジェクト.filters = フィルタオブジェクト


○複数適用できる

表示オブジェクト.filters = [フィルタオブジェクト1,フィルタオブジェクト2]



var blurObj:BlurFilter = new BlurFilter();

blurObj.blurX = 100;
blurObj.blurY = 100;

_mc.filters = [blurObj];


解除

_mc.filters = null;

インスタンス作成時にクラス名を文字列でしていする

getDefinitionByName()メソッドを使用

例)

var className:String = "star";

var myClass:Class = getDefinitionByName(className) as Class;

var NewStar:MovieClip = new myClass();

フォロワー