ステージのwidthとheightを図るプロパティです。
Flashゲーム制作ではステージのサイズを参照する機会は非常に多いです。覚えておくべきプロパティの一つです。
ステージのwidthを参照する
stage.stageWidth
ステージのheightを参照する。
stage.stageHeight
//ステージのwidthが550 heightが400
trace(stage.stageWidth);//output 550
trace(stage.stageHeight);//output 400

2008年03月31日
2008年03月30日
[復習]小数点のを値を切り上げるMath.ceilについて
小数点のを値を切り上げるMath.ceilについて解説します。
1.5という値がをMath.ceil(1.5)とすると2を返します。
Math.floorに比べて使う機会は少ないですが、使いようによっては中々便利です。トップのギャラリーもMath.ceilを使ってます。Math.ceilの詳しい応用方法の例などは後日記載します。
例題
1.1という値ををMath.ceilで2を出力する。
1.5という値がをMath.ceil(1.5)とすると2を返します。
Math.floorに比べて使う機会は少ないですが、使いようによっては中々便利です。トップのギャラリーもMath.ceilを使ってます。Math.ceilの詳しい応用方法の例などは後日記載します。
例題
1.1という値ををMath.ceilで2を出力する。
|
2008年03月29日
[復習]配列に値を追加するpush
配列に値を追加するpushについて解説します。
配列には様々な値を格納する事ができます。配列のpushを使用すると配配列の一番後ろにpushで指定した値を追加できます。
ソースコード
配列には様々な値を格納する事ができます。配列のpushを使用すると配配列の一番後ろにpushで指定した値を追加できます。
ソースコード
|
2008年03月28日
ロードしたXMLデータをSharedObjectに格納
ロードしたXMLデータをSharedObjectに格納します。
XMLデータをSharedObjectに格納して自由に呼び出す処理は汎用性の高い処理です。
例題
SharedObjectを複数生成し、配列に代入。
XMLをロードし。ロードが完了したらXMLをSharedObjectに代入するボタンを生成するメソッドにアクセス。
下のボタンをクリックすると配列内のSharedObjectにXMLを代入。
下のボタンをクリックしてから上のボタンをクリックすると配列内のSharedObjectの内容が出力される。
ソースコード | Flashゲーム研究所
XMLデータをSharedObjectに格納して自由に呼び出す処理は汎用性の高い処理です。
例題
SharedObjectを複数生成し、配列に代入。
XMLをロードし。ロードが完了したらXMLをSharedObjectに代入するボタンを生成するメソッドにアクセス。
下のボタンをクリックすると配列内のSharedObjectにXMLを代入。
下のボタンをクリックしてから上のボタンをクリックすると配列内のSharedObjectの内容が出力される。
ソースコード | Flashゲーム研究所
2008年03月27日
[復習]Stringの後ろにStringを追加するconcatメソッド
Stringの後ろにStringを追加するconcatメソッドについて解説していきます。
concatはStringのデータに文字列を追加するメソッドです。
concatメソッドを実行した元のStringオブジェクトの内容は変化しません。
例題
concatメソッドで文字列に曜日を順番に表示します。出力結果は
今日は月曜日
今日は火曜日
今日は水曜日
今日は木曜日
今日は金曜日
今日は土曜日
今日は日曜日
となります。
sample_str:String(concatを実行)、dayArr:Array(追加する各文字列を格納)、day_str:String(sample_strにdayArrの文字列を追加したオブジェクト)
の三つのオブジェクトを定義。dayArrには曜日順に月〜日の文字列を格納しておく。
for文の処理内でday_strにsample_str.concat(dayArr[i]+"曜日")の処理を行う。sample_strのconcatメソッドでdayArr[i]の各値を追加していく。
sample_str.concatでdayArrの各文字列を追加した文字列を代入したday_strを出力していく
ソースコード
concatはStringのデータに文字列を追加するメソッドです。
concatメソッドを実行した元のStringオブジェクトの内容は変化しません。
例題
concatメソッドで文字列に曜日を順番に表示します。出力結果は
今日は月曜日
今日は火曜日
今日は水曜日
今日は木曜日
今日は金曜日
今日は土曜日
今日は日曜日
となります。
sample_str:String(concatを実行)、dayArr:Array(追加する各文字列を格納)、day_str:String(sample_strにdayArrの文字列を追加したオブジェクト)
の三つのオブジェクトを定義。dayArrには曜日順に月〜日の文字列を格納しておく。
for文の処理内でday_strにsample_str.concat(dayArr[i]+"曜日")の処理を行う。sample_strのconcatメソッドでdayArr[i]の各値を追加していく。
sample_str.concatでdayArrの各文字列を追加した文字列を代入したday_strを出力していく
ソースコード
|
[復習]Stringの後ろにStringを追加するconcatメソッド
Stringの後ろにStringを追加するconcatメソッドについて解説していきます。
concatはStringのデータに文字列を追加するメソッドです。
concatメソッドを実行した元のStringオブジェクトの内容は変化しません。
例題
concatメソッドで文字列に曜日を順番に表示します。出力結果は
今日は月曜日
今日は火曜日
今日は水曜日
今日は木曜日
今日は金曜日
今日は土曜日
今日は日曜日
となります。
sample_str:String(concatを実行)、dayArr:Array(追加する各文字列を格納)、day_str:String(sample_strにdayArrの文字列を追加したオブジェクト)
の三つのオブジェクトを定義。dayArrには曜日順に月〜日の文字列を格納しておく。
for文の処理内でday_strにsample_str.concat(dayArr[i]+"曜日")の処理を行う。sample_strのconcatメソッドでdayArr[i]の各値を追加していく。
sample_str.concatでdayArrの各文字列を追加した文字列を代入したday_strを出力していく
ソースコード
concatはStringのデータに文字列を追加するメソッドです。
concatメソッドを実行した元のStringオブジェクトの内容は変化しません。
例題
concatメソッドで文字列に曜日を順番に表示します。出力結果は
今日は月曜日
今日は火曜日
今日は水曜日
今日は木曜日
今日は金曜日
今日は土曜日
今日は日曜日
となります。
sample_str:String(concatを実行)、dayArr:Array(追加する各文字列を格納)、day_str:String(sample_strにdayArrの文字列を追加したオブジェクト)
の三つのオブジェクトを定義。dayArrには曜日順に月〜日の文字列を格納しておく。
for文の処理内でday_strにsample_str.concat(dayArr[i]+"曜日")の処理を行う。sample_strのconcatメソッドでdayArr[i]の各値を追加していく。
sample_str.concatでdayArrの各文字列を追加した文字列を代入したday_strを出力していく
ソースコード
|
2008年03月26日
[復習]SharedObjectを使って数字を保存
SharedObjectを使って前に入れた数字を保存して表示する処理を行います。
例題 テキストフィールドに半角数字を入れる。保存のボタンを押すと代入した数字がSharedObjectに保存される。ロードを押すと以前に入れた数字が表示される。
SharedObjectを使っているので一度保存した数字は新規に数字を保存するまで残ります。数字を入れた後一度swfを閉じ、再度swfを開いてロードボタンを押すと、前に保存した数字が表示されます。
例題のソースコード
例題 テキストフィールドに半角数字を入れる。保存のボタンを押すと代入した数字がSharedObjectに保存される。ロードを押すと以前に入れた数字が表示される。
SharedObjectを使っているので一度保存した数字は新規に数字を保存するまで残ります。数字を入れた後一度swfを閉じ、再度swfを開いてロードボタンを押すと、前に保存した数字が表示されます。
例題のソースコード
|
2008年03月25日
[復習]イベントハンドラに引数をわたす簡単な処理
イベントハンドラに引数をわたす簡単な処理を行います。
イベントハンドラに任意の引数を設定した後に、
returnでイベントハンドラ用の引数を設定したfunction を定義しておく事で
同じ関数内でクリックした時の処理と、通常の方法でアクセスした時の処理を
振り分ける事ができます。
例題 一つの関数内ににクリックイベント時に行う処理と、引数を設定して通常のやり方で
アクセスした場合の処理の両方を定義する。
通常にアクセスした時と、オブジェクトをクリック(MouseEvent)してアクセスした時で
それぞれ違う処理を返す。
my_btn.addEventListener(MouseEvent.CLICK,sampleHandler(12));//output 12
function sampleHandler(ui:uint)
{
trace("引数 ui ="+ui)
return function (evt:MouseEvent):void{
//btnがクリックされた時の処理
trace("ボタンがクリックされました"+evt.currentTarget)
//
}
}
sampleHandler(30)//output 30
この様にイベントハンドラの関数内に return function(引数:イベントトリガと同じ型)と定義する事で、イベントハンドラの関数に普通にアクセスした場合と特定のイベントでアクセスした場合の処理を振り分けする事でき、イベントハンドラに引数を設定する事ができます。
イベントハンドラに任意の引数を設定した後に、
returnでイベントハンドラ用の引数を設定したfunction を定義しておく事で
同じ関数内でクリックした時の処理と、通常の方法でアクセスした時の処理を
振り分ける事ができます。
例題 一つの関数内ににクリックイベント時に行う処理と、引数を設定して通常のやり方で
アクセスした場合の処理の両方を定義する。
通常にアクセスした時と、オブジェクトをクリック(MouseEvent)してアクセスした時で
それぞれ違う処理を返す。
my_btn.addEventListener(MouseEvent.CLICK,sampleHandler(12));//output 12
function sampleHandler(ui:uint)
{
trace("引数 ui ="+ui)
return function (evt:MouseEvent):void{
//btnがクリックされた時の処理
trace("ボタンがクリックされました"+evt.currentTarget)
//
}
}
sampleHandler(30)//output 30
この様にイベントハンドラの関数内に return function(引数:イベントトリガと同じ型)と定義する事で、イベントハンドラの関数に普通にアクセスした場合と特定のイベントでアクセスした場合の処理を振り分けする事でき、イベントハンドラに引数を設定する事ができます。
2008年03月24日
[復習]returnを使って関数の処理を中断
returnを使って関数の処理を中断します。
returnは関数の処理を途中で中断する事もできます。
function decisionReturn(){
trace("処理に入りました")
if(!isBtn) return;
trace("isBtnをtrueがtrue。引き続き関数を実行")
}
isBtnの値がfalseの場合、その場で関数の処理が中断されます。よってreturnの下に定義したtrace()の処理は実行されません。
条件を満たしていない時は関数の処理を中断するという処理を行う時にreturnは非常に便利です。
Flashゲーム制作では変数の状態を判断し、処理を実行するかどうかを判断する機会が非常に多いので、条件が満たされていない場合はreturnで関数の処理を中断するreturnの処理は非常に役に立ちます。
ソースコード
returnは関数の処理を途中で中断する事もできます。
function decisionReturn(){
trace("処理に入りました")
if(!isBtn) return;
trace("isBtnをtrueがtrue。引き続き関数を実行")
}
isBtnの値がfalseの場合、その場で関数の処理が中断されます。よってreturnの下に定義したtrace()の処理は実行されません。
条件を満たしていない時は関数の処理を中断するという処理を行う時にreturnは非常に便利です。
Flashゲーム制作では変数の状態を判断し、処理を実行するかどうかを判断する機会が非常に多いので、条件が満たされていない場合はreturnで関数の処理を中断するreturnの処理は非常に役に立ちます。
ソースコード
|
2008年03月23日
[復習]多次元配列を生成します
多次元配列を生成します。情報の整理に非常に便利です。
var sample_arr:Array=new Array();
sample_arr[0]=new Array()
sample_arr[0][0]="0,0";
sample_arr[0][1]="0,1";
sample_arr[1]=new Array()
sample_arr[1][0]="1,0";
sample_arr[1][1]="1,1";
多次元配列は配列の中に新たな配列が生成された配列です。多次元配列は使いこなすと非常に便利ですので、使用例等を後日アップしていきたいと思います。
基本的な生成方法
ソースコード
var sample_arr:Array=new Array();
sample_arr[0]=new Array()
sample_arr[0][0]="0,0";
sample_arr[0][1]="0,1";
sample_arr[1]=new Array()
sample_arr[1][0]="1,0";
sample_arr[1][1]="1,1";
多次元配列は配列の中に新たな配列が生成された配列です。多次元配列は使いこなすと非常に便利ですので、使用例等を後日アップしていきたいと思います。
基本的な生成方法
ソースコード
|
2008年03月22日
[復習]現在のswfのラベル名を調べる。
現在のswfのラベル名を調べます。swfのラベル名はFrameLabel
オブジェクトを使用します。FrameLabelオブジェクトには、フレーム番号や定義されたラベル名を参照するプロパティがあります。
定義されたラベル名はFrameLabel.nameプロパティで参照できます。
name:String [read-only]
例題 swfに定義されたラベル名を取得します。
まず、this.currentLabelsメソッドでステージ中のすべてのラベルを取得し配列に格納します。
for文を使いcurrentLabelsで取得した配列のlengthの数だけ処理をループさせます。
for文内でFrameLabelオブジェクトを生成し、ラベル配列のi番目を代入します。ラベル配列が代入されたオブジェクトのnameプロパティを参照します。
FrameLabel.nameプロパティを参照し、ステージのラベル名を参照していきます。
オブジェクトを使用します。FrameLabelオブジェクトには、フレーム番号や定義されたラベル名を参照するプロパティがあります。
定義されたラベル名はFrameLabel.nameプロパティで参照できます。
name:String [read-only]
例題 swfに定義されたラベル名を取得します。
まず、this.currentLabelsメソッドでステージ中のすべてのラベルを取得し配列に格納します。
for文を使いcurrentLabelsで取得した配列のlengthの数だけ処理をループさせます。
for文内でFrameLabelオブジェクトを生成し、ラベル配列のi番目を代入します。ラベル配列が代入されたオブジェクトのnameプロパティを参照します。
FrameLabel.nameプロパティを参照し、ステージのラベル名を参照していきます。
|
2008年03月21日
[復習]Timerオブジェクトの実行回数の指定を行います。
Timerオブジェクトの実行回数の指定を行います。
public 関数 Timer(delay:Number, repeatCount:int = 0)
定義時の第二引数で繰り返し回数を指定します。
var my_tm:Timer=new Timer(1000,3);
だと、第二引数に3と指定されているので3回処理を繰り返した後に停止します。
0を指定した場合、stop()メソッドで止めるまでずっと処理を繰り返します。
例題
my_tmというTimerObjectが5回処理を繰り返す。
var my_tm:Timer=new Timer(1000,5);
my_tm.addEventListener(TimerEvent.TIMER,tmHandler)
var repeat_ui:uint=0;
my_tm.start();
function tmHandler(evt:TimerEvent)
{
repeat_ui++;
trace(repeat_ui+"回目");
}
public 関数 Timer(delay:Number, repeatCount:int = 0)
定義時の第二引数で繰り返し回数を指定します。
var my_tm:Timer=new Timer(1000,3);
だと、第二引数に3と指定されているので3回処理を繰り返した後に停止します。
0を指定した場合、stop()メソッドで止めるまでずっと処理を繰り返します。
例題
my_tmというTimerObjectが5回処理を繰り返す。
var my_tm:Timer=new Timer(1000,5);
my_tm.addEventListener(TimerEvent.TIMER,tmHandler)
var repeat_ui:uint=0;
my_tm.start();
function tmHandler(evt:TimerEvent)
{
repeat_ui++;
trace(repeat_ui+"回目");
}
2008年03月20日
[復習]for文の処理を途中で止める「break」について
for文の処理を途中で止める「break」について解説します。
breakはfor文の処理を途中で抜ける処理です。
breakを使う事でfor文の途中で条件を満たした時点でfor文を中断し、残りのループ処理を抜ける事ができます。
for(var i:Number=0;i<20;i++)
{
if(i>10){
break;
}
}
これはiが10以上になったらfor文の残りの部分をスキップして抜ける処理です。
breakはfor文の処理を途中で抜ける処理です。
breakを使う事でfor文の途中で条件を満たした時点でfor文を中断し、残りのループ処理を抜ける事ができます。
for(var i:Number=0;i<20;i++)
{
if(i>10){
break;
}
}
これはiが10以上になったらfor文の残りの部分をスキップして抜ける処理です。
2008年03月19日
tryメソッドでエラーの発生の有無に関わらず実行される、「finally」について
finallyはtryメソッドで、エラー発生の有無に関わらず、実行される処理です。
tryメソッドはエラーが発生しない(try{}で定義された処理の実行が可能)場合は、try{}で定義したメソッドが実行され、エラーが発生した(実行が不可能)場合は、catch{}で定義されたメソッドが実行されます。
finallyは、その様なエラーの発生の有無に関わらず、実行される処理です。
例題
my_spというSpriteオブジェクトを生成する。
tryメソッド内に
Spriteオブジェクトを、ステージ上にaddChild()するメソッドと、定義したmy_sp内にmy_spをaddChildする処理(実行できない処理)を定義します。
実行できない処理である、my_sp内にmy_spをaddChildする処理をコメントアウトしているので、ここではtry{}で定義されたメソッドが実行されます。コメントアウトを解除すると、try{}で定義された処理は実行されず、エラー処理を拾う、catch()メソッドで定義された処理が実行されます。
finallyの処理は、処理が実行可能な場合に実行される、tryメソッド、エラーが発生した時に実行されるcatchメソッドのどちらが実行されても実行される。
import flash.display.Sprite;
var my_sp:Sprite = new Sprite();
try
{
stage.addChild(my_sp);
//実行するとエラーが起こる処理。コメントアウトを解除した場合、catch内のメソッドが実行される
//my_sp.addChild(my_sp);
trace("tryの実行が完了");
}
catch (e:ArgumentError)
{
trace("tryが実行されませんでした");
trace(e); // エラー内容を出力
}finally
{
trace("エラー発生の有無に関わらず実行される");
}
tryメソッドはエラーが発生しない(try{}で定義された処理の実行が可能)場合は、try{}で定義したメソッドが実行され、エラーが発生した(実行が不可能)場合は、catch{}で定義されたメソッドが実行されます。
finallyは、その様なエラーの発生の有無に関わらず、実行される処理です。
例題
my_spというSpriteオブジェクトを生成する。
tryメソッド内に
Spriteオブジェクトを、ステージ上にaddChild()するメソッドと、定義したmy_sp内にmy_spをaddChildする処理(実行できない処理)を定義します。
実行できない処理である、my_sp内にmy_spをaddChildする処理をコメントアウトしているので、ここではtry{}で定義されたメソッドが実行されます。コメントアウトを解除すると、try{}で定義された処理は実行されず、エラー処理を拾う、catch()メソッドで定義された処理が実行されます。
finallyの処理は、処理が実行可能な場合に実行される、tryメソッド、エラーが発生した時に実行されるcatchメソッドのどちらが実行されても実行される。
import flash.display.Sprite;
var my_sp:Sprite = new Sprite();
try
{
stage.addChild(my_sp);
//実行するとエラーが起こる処理。コメントアウトを解除した場合、catch内のメソッドが実行される
//my_sp.addChild(my_sp);
trace("tryの実行が完了");
}
catch (e:ArgumentError)
{
trace("tryが実行されませんでした");
trace(e); // エラー内容を出力
}finally
{
trace("エラー発生の有無に関わらず実行される");
}
2008年03月18日
2008年03月17日
MC内のラベルを取得する
MC内のラベルを取得します。
例題
my_mcというMCのタイムラインに複数のラベルを定義します。
メインタイムラインに以下のコードを記述する事により、MCに定義されたラベル(シーン)を取得します。
ソースコード
//my_mcのラベルを総て取得する
var scene_arr:Array=my_mc.currentScene.labels;
//ラベルの数
trace("scene_arr="+scene_arr.length)
for(var i=0;i<scene_arr.length;i++)
{
//my_label=scene_arr[i].name
trace(scene_arr[i].name)
}
例題
my_mcというMCのタイムラインに複数のラベルを定義します。
メインタイムラインに以下のコードを記述する事により、MCに定義されたラベル(シーン)を取得します。
ソースコード
//my_mcのラベルを総て取得する
var scene_arr:Array=my_mc.currentScene.labels;
//ラベルの数
trace("scene_arr="+scene_arr.length)
for(var i=0;i<scene_arr.length;i++)
{
//my_label=scene_arr[i].name
trace(scene_arr[i].name)
}
2008年03月16日
2008年03月15日
[復習]配列のメソッドreverseを使って配列の並びを反転
配列のメソッドreverseを使って配列の並びを反転させます。
reverseメソッドを使う事で配列の並び順を逆にする事ができます。
例題
配列オブジェクトを生成。配列の中に1,2,3,4,5と五つの文字を入れる。trace()すると1,2,3,4,5の文字が返される。この配列オブジェクトにreverseメソッドを適用。再度trace()すると5,4,3,2,1の順に返される。
reverseメソッドを使う事で配列の並び順を逆にする事ができます。
例題
配列オブジェクトを生成。配列の中に1,2,3,4,5と五つの文字を入れる。trace()すると1,2,3,4,5の文字が返される。この配列オブジェクトにreverseメソッドを適用。再度trace()すると5,4,3,2,1の順に返される。
|
2008年03月14日
2008年03月13日
while処理に使うcontinueメソッドの基礎
while処理に使うcontinueメソッドの基礎を学習します。
continueメソッドを使います。
ソースコード
var my_ui:uint = 0;
while (my_ui < 13)
{
if (my_ui % 4 == 0) {
my_ui++;
continue;
}
trace(my_ui);
my_ui++;
}
continueメソッドを使います。
ソースコード
var my_ui:uint = 0;
while (my_ui < 13)
{
if (my_ui % 4 == 0) {
my_ui++;
continue;
}
trace(my_ui);
my_ui++;
}







