例)A_mcを移動させる。
package{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
public class MoveStr extends Sprite {
// コンストラクタ
public function MoveStr() {
// フレームが再生されるたびにenterFrameHandlerを実行
A_mc.addEventListener( Event.ENTER_FRAME, enterFrameHandler );
}
// 毎フレーム実行する
private function enterFrameHandler( evt:Event ):void{
//ターゲットのムービークリップを取得する
var mc:MovieClip = evt.target as MovieClip;
//終点の設定
var goalx:Number = 500;
//ムービークリップの位置設定
moveStr(mc,goalx);
}
//ムービークリップの位置設定
private function moveStr( targetmc:MovieClip, goalx:Number ):void{
if ( Math.abs(goalx-targetmc.x )<10){
//スナップ処理
targetmc.x = goalx;
//イベントリスナー削除
targetmc.removeEventListener( Event.ENTER_FRAME, enterFrameHandler );
} else {
//x座標を設定
var easing:Number = 0.15;
//イージングでx座標を設定
targetmc.x +=( goalx - targetmc.x ) * easing;
}
}
}
}
web,direction,planning,graphicdesign
2009年5月20日水曜日
ActionScript ドキュメントクラス
ドキュメントクラスとは,SWFファイルに関連づけられるトップクラスの事。
ドキュメントクラスには、任意のカスタムクラスを設定する事が出来る。
Flash Player でSWFがロードされたときに、特にnew演算子を使うことなく、自動的にこのクラスのインスタンスが作成され、コンストラクタが呼び出される。
〈設定方法〉
flaファイルの空白領域をクリックして、ステージとタイムラインのすべてのオブジェクトの選択を解除すると、プロパティインスペクタに「ドキュメントプロパティ」が表示される。プロパティインスペクタの「ドキュメントクラス」テキストボックスに、クラス名(パッケージを背呈している場合は、クラスパスとクラス名)を入力
例)線が描かれていく
RandomLine.asにRandomLineクラスを作成していく。RandomLineクラスにはSpirteクラス(表示オブジェクト、表示オブジェクトコンテナでもあるというコアクラス)を継承する(extends)。
RandomLine.as
package {
import flash.display.Sprite;
import flash.events.Event;
public class RandomLine extends Sprite {
// 描画した線をカウントする変数
private var count:int = 0;
//コンストラクタ
public function RandomLine(){
//線のスタイル
this.graphics.lineStyle(1,0xFF358B);
//ステージの中心から描き始める
this.graphics.moveTo(this.stage.stageWidth/2,this.stage.stageHeight/2);
//フレームが再生されるたびにenterFrameHandlerを実行
this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
private function enterFrameHandler(evt:Event):void{
//ランダムに線を描く
if (count<1000){
//ランダムに座標を設定
var xx:int = Math.random() * this.stage.stageWidth;
var yy:int = Math.random() * this.stage.stageHeight;
//線を描く
this.graphics.lineTo(xx,yy);
//描画した線をカウントする
count++;
}else{
//イベントリスナーを削除
this.removeEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
}
}
}
ドキュメントクラスには、任意のカスタムクラスを設定する事が出来る。
Flash Player でSWFがロードされたときに、特にnew演算子を使うことなく、自動的にこのクラスのインスタンスが作成され、コンストラクタが呼び出される。
〈設定方法〉
flaファイルの空白領域をクリックして、ステージとタイムラインのすべてのオブジェクトの選択を解除すると、プロパティインスペクタに「ドキュメントプロパティ」が表示される。プロパティインスペクタの「ドキュメントクラス」テキストボックスに、クラス名(パッケージを背呈している場合は、クラスパスとクラス名)を入力
例)線が描かれていく
RandomLine.asにRandomLineクラスを作成していく。RandomLineクラスにはSpirteクラス(表示オブジェクト、表示オブジェクトコンテナでもあるというコアクラス)を継承する(extends)。
RandomLine.as
package {
import flash.display.Sprite;
import flash.events.Event;
public class RandomLine extends Sprite {
// 描画した線をカウントする変数
private var count:int = 0;
//コンストラクタ
public function RandomLine(){
//線のスタイル
this.graphics.lineStyle(1,0xFF358B);
//ステージの中心から描き始める
this.graphics.moveTo(this.stage.stageWidth/2,this.stage.stageHeight/2);
//フレームが再生されるたびにenterFrameHandlerを実行
this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
private function enterFrameHandler(evt:Event):void{
//ランダムに線を描く
if (count<1000){
//ランダムに座標を設定
var xx:int = Math.random() * this.stage.stageWidth;
var yy:int = Math.random() * this.stage.stageHeight;
//線を描く
this.graphics.lineTo(xx,yy);
//描画した線をカウントする
count++;
}else{
//イベントリスナーを削除
this.removeEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
}
}
}
ラベル:
actionscript3.0,
basic
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);
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);
ラベル:
actionscript3.0,
basic
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);
}
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);
}
ラベル:
actionscript3.0,
basic
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);
Loarder.load()メソッドによる外部イメージファイルのロード
loaderオブジェクトを表示リストに追加
例)
var loader:Loadr = new Loader();
var urlReq:URLRequest = new URLRequest("photo.jpg");
loader.load(urlReq);
addChild(loader);
ラベル:
actionscript3.0,
basic
登録:
投稿 (Atom)