選択肢の実装についてです。
XMLによる選択肢による分岐調整のパラメータを実装するために試行錯誤中。
簡単なXMLによる分岐値調整ロジックを考えたのでメモします。
続きを読む

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月11日
switch文の基礎
switch文の基礎を学習します。
switch()メソッドは()内に条件文となる値を定義しcaseとbreakを使用する事で各値に適用した判断し、メソッドを実行します。
例題
my_uiというuint変数を定義する。
my_uiに0〜3の乱数定義する。
switch(my_ui)でmy_uiの値を、caseで判断し、値にあったメソッドを実行します。
ソースコード
var my_ui:uint=0;
my_ui=Math.floor(Math.random()*4)
switch(my_ui)
{
case 0:
trace("0です");
break;
case 1:
trace("1です");
break;
case 2:
trace("2です");
break;
case 3:
trace("3です");
break;
}
switch()メソッドは()内に条件文となる値を定義しcaseとbreakを使用する事で各値に適用した判断し、メソッドを実行します。
例題
my_uiというuint変数を定義する。
my_uiに0〜3の乱数定義する。
switch(my_ui)でmy_uiの値を、caseで判断し、値にあったメソッドを実行します。
ソースコード
var my_ui:uint=0;
my_ui=Math.floor(Math.random()*4)
switch(my_ui)
{
case 0:
trace("0です");
break;
case 1:
trace("1です");
break;
case 2:
trace("2です");
break;
case 3:
trace("3です");
break;
}
2008年03月10日
try、catchメソッドの基礎
try、catchメソッドの基礎を学習します。
try、catchメソッドはエラーが発生する可能性のあるコードブロックを囲み、そのエラーに対処するためのメソッドです。
AS3におけるエラー等の例外処理が発生する可能性のある処理を実行する時に、このtry、catchメソッドが役に立ちます。
例題
my_spというSpriteオブジェクトを生成する。
tryメソッド内に
Spriteオブジェクトを、ステージ上にaddChild()するメソッドと、定義したmy_sp内にmy_spをaddChildする処理(実行できない処理)を定義します。
実行できない処理である、my_sp内にmy_spをaddChildする処理をコメントアウトしているので、ここではtry{}で定義されたメソッドが実行されます。コメントアウトを解除すると、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); // エラー内容を出力
}
try、catchメソッドはエラーが発生する可能性のあるコードブロックを囲み、そのエラーに対処するためのメソッドです。
AS3におけるエラー等の例外処理が発生する可能性のある処理を実行する時に、このtry、catchメソッドが役に立ちます。
例題
my_spというSpriteオブジェクトを生成する。
tryメソッド内に
Spriteオブジェクトを、ステージ上にaddChild()するメソッドと、定義したmy_sp内にmy_spをaddChildする処理(実行できない処理)を定義します。
実行できない処理である、my_sp内にmy_spをaddChildする処理をコメントアウトしているので、ここではtry{}で定義されたメソッドが実行されます。コメントアウトを解除すると、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); // エラー内容を出力
}
2008年03月09日
while文の基礎
while文の基礎を学習します。
while文とは条件を満たしている限り実行されつづける処理です。
while(条件文)
{
//処理の実行
}
例文
count_uiというuint型の変数を定義します。
count_uiの値が5以下の場合に実行されるという条件を定義します。
処理内ではcount_uiをインクリメント(++)します。
count_uiが5以下であるという条件を満たしている限り、インクリメントは繰り返されます。
インクリメントの処理が繰り返され、値が5以下でなくなった時にwhile文が抜けます。
ソースコード
var count_ui:uint=0;
while(count_ui<5)
{
trace("count_ui="+count_ui);
count_ui++;
}
trace("count_ui="+count_ui)
while文とは条件を満たしている限り実行されつづける処理です。
while(条件文)
{
//処理の実行
}
例文
count_uiというuint型の変数を定義します。
count_uiの値が5以下の場合に実行されるという条件を定義します。
処理内ではcount_uiをインクリメント(++)します。
count_uiが5以下であるという条件を満たしている限り、インクリメントは繰り返されます。
インクリメントの処理が繰り返され、値が5以下でなくなった時にwhile文が抜けます。
ソースコード
var count_ui:uint=0;
while(count_ui<5)
{
trace("count_ui="+count_ui);
count_ui++;
}
trace("count_ui="+count_ui)
2007年12月23日
!演算子を使用してStringに文字列が入っているかどうかを判断する
!演算子を使用してStringに文字列が入っているかどうかを判断します。
String!=="文字列"
でStringが特定の文字列ではない場合というif文を作る事ができます。
例題
Stringオブジェクトに文字列が入っているか否かを判断する。
Stringオブジェクトは二つ用意する。一つは「"a"」を代入し、もう一つはStringオブジェクトを定義した時に自動的に代入される「null」の値が設定されている。
var my_str:String="a";
//Stringの中身が空白ではない場合
if(my_str!="")
{
trace("文字列が入っています");
}
var sample_str:String;
trace("sample_str="+sample_str)
//Stringの中身がnullではない場合
if(sample_str!=null)
{
trace("sample_strはnullではありません");
}
String!=="文字列"
でStringが特定の文字列ではない場合というif文を作る事ができます。
例題
Stringオブジェクトに文字列が入っているか否かを判断する。
Stringオブジェクトは二つ用意する。一つは「"a"」を代入し、もう一つはStringオブジェクトを定義した時に自動的に代入される「null」の値が設定されている。
var my_str:String="a";
//Stringの中身が空白ではない場合
if(my_str!="")
{
trace("文字列が入っています");
}
var sample_str:String;
trace("sample_str="+sample_str)
//Stringの中身がnullではない場合
if(sample_str!=null)
{
trace("sample_strはnullではありません");
}
2007年12月21日
!演算子を使用した変数が特定の値でない場合を判断するif文
変数が特定の値でない場合という式を判断するには変数の後に!をつけます。
変数の値が特定の値ではない場合のif文の処理は使う機会が多いので覚えておく事をお勧めします。
例題
変数get_numを生成し、値を2に設定。
if(get_num!==-1){}という処理を定義。get_numは-1でないためステートメントが実行される。
var get_num:Number=2
//数が特定の数でない場合という式を判断するには変数の後に!を
if(get_num!==-1)
{
alert("get_numは-1ではない");
}
変数の値が特定の値ではない場合のif文の処理は使う機会が多いので覚えておく事をお勧めします。
例題
変数get_numを生成し、値を2に設定。
if(get_num!==-1){}という処理を定義。get_numは-1でないためステートメントが実行される。
var get_num:Number=2
//数が特定の数でない場合という式を判断するには変数の後に!を
if(get_num!==-1)
{
alert("get_numは-1ではない");
}
2007年10月23日
?と:を使って条件分岐を行う
?と:を使って条件分岐処理を行います。
例文
(sample2_ui<sample_ui)?trueMethod():falseMethod()
(条件文)?trueの場合の処理:falseの場合の処理
という風に記述します。
:の前の処理がtrueの場合の処理。
:の後の処理がfalseの場合の処理です。
簡潔に分岐処理を行う場合はこの手法がお勧めです。
ソースコード | Flashゲーム研究所
例文
(sample2_ui<sample_ui)?trueMethod():falseMethod()
(条件文)?trueの場合の処理:falseの場合の処理
という風に記述します。
:の前の処理がtrueの場合の処理。
:の後の処理がfalseの場合の処理です。
簡潔に分岐処理を行う場合はこの手法がお勧めです。
ソースコード | Flashゲーム研究所
2007年10月20日
returnを使って関数の処理を中断する
returnを使って関数の処理を中断します。
returnは関数の処理を途中で中断する事もできます。
function decisionReturn(){
trace("処理に入りました")
if(!isBtn) return;
trace("isBtnをtrueがtrue。引き続き関数を実行")
}
isBtnの値がfalseの場合、その場で関数の処理が中断されます。よってreturnの下に定義したtrace()の処理は実行されません。
条件を満たしていない時は関数の処理を中断するという処理を行う時にreturnは非常に便利です。
Flashゲーム制作では変数の状態を判断し、処理を実行するかどうかを判断する機会が非常に多いので、条件が満たされていない場合はreturnで関数の処理を中断するreturnの処理は非常に役に立ちます。
ソースコード | Flashゲーム研究所
returnは関数の処理を途中で中断する事もできます。
function decisionReturn(){
trace("処理に入りました")
if(!isBtn) return;
trace("isBtnをtrueがtrue。引き続き関数を実行")
}
isBtnの値がfalseの場合、その場で関数の処理が中断されます。よってreturnの下に定義したtrace()の処理は実行されません。
条件を満たしていない時は関数の処理を中断するという処理を行う時にreturnは非常に便利です。
Flashゲーム制作では変数の状態を判断し、処理を実行するかどうかを判断する機会が非常に多いので、条件が満たされていない場合はreturnで関数の処理を中断するreturnの処理は非常に役に立ちます。
ソースコード | Flashゲーム研究所
2007年10月18日
!を使ってBoolean変数のtrueかfalseを判断する
!(論理否定演算子)を使ってBoolean変数がtrueかfalseかを判断します。
var isBtn:Boolean=false;
if(!isBtn){
trace("falseです");
}
変数の前に「!」をつける事によって変数が「false」の場合はという条件式になります。
Boolean変数のtrue,falseを判断するのに非常に便利な演算子なので覚えておく事をおすすめします。
ソースコード | Flashゲーム研究所
var isBtn:Boolean=false;
if(!isBtn){
trace("falseです");
}
変数の前に「!」をつける事によって変数が「false」の場合はという条件式になります。
Boolean変数のtrue,falseを判断するのに非常に便利な演算子なので覚えておく事をおすすめします。
ソースコード | Flashゲーム研究所
2007年10月10日
elseステートメントの基礎的な使用方法
elseステートメントの基礎的な使用方法を解説します。elseステートメントはifステートメントを使いこなす上でかかす事ができない処理です。
elseステートメントはif ステートメントの条件が false を返したときに実行するステートメントを指定するものです。
if (condition) { // ステートメント } else { // ステートメント }
下記の例文を見てみましょう。sample_numの値がif()のステートメントが5以下だった場合はfalseを返すのでifステートメントは実行されずにelse{}のステートメントが実行されます。
if(sample_num>5){
trace("sample_numの値が5以上なので処理を実行");
} else else {
trace("random_numが5以下です")
}
else{}ステートメントはifステートメントの条件がfalseを返した際に実行される処理です。
例題
ボタンオブジェクトとNumberオブジェクトを生成します。
ボタンをクリックするとNumberオブジェクトに0〜9の値がランダムで代入されます。
その値をif文を使って判断します。
Numberオブジェクトが5より大きい場合は{}のステートメント内の処理が適用されます。
小さい場合はifステートメントの条件がfalseを返すのでelseステートメントが実行されます。ソースコード | Flashゲーム研究所
elseステートメントはif ステートメントの条件が false を返したときに実行するステートメントを指定するものです。
if (condition) { // ステートメント } else { // ステートメント }
下記の例文を見てみましょう。sample_numの値がif()のステートメントが5以下だった場合はfalseを返すのでifステートメントは実行されずにelse{}のステートメントが実行されます。
if(sample_num>5){
trace("sample_numの値が5以上なので処理を実行");
} else else {
trace("random_numが5以下です")
}
else{}ステートメントはifステートメントの条件がfalseを返した際に実行される処理です。
例題
ボタンオブジェクトとNumberオブジェクトを生成します。
ボタンをクリックするとNumberオブジェクトに0〜9の値がランダムで代入されます。
その値をif文を使って判断します。
Numberオブジェクトが5より大きい場合は{}のステートメント内の処理が適用されます。
小さい場合はifステートメントの条件がfalseを返すのでelseステートメントが実行されます。ソースコード | Flashゲーム研究所
2007年10月09日
ifステートメントについて
条件分岐の基礎であるifステートメントの使用方法を解説します。ifステートメントは分岐処理が多いFlashゲーム制作において欠かす事ができない処理です。
ifステートメントはif ステートメントの条件が trueを返したときに実行するステートメントを指定するものです。
if (condition) { // ステートメント }
下記の例文を見てみましょう。sample_numの値が5を上回った場合はifステートメントの条件がtrueを返し、{}内の処理を実行します。
if(sample_num>5){
trace("sample_numの値が5以上なので処理を実行");
}
if{}ステートメントはifステートメントの条件がtrueを返した際に実行される処理です。
例題
ボタンオブジェクトとNumberオブジェクトを生成します。
ボタンをクリックするとNumberオブジェクトに0〜9の値がランダムで代入されます。
その値をif文を使って判断します。
Numberオブジェクトが5より大きい場合はifステートメントの条件がtrueを返し{}のステートメント内の処理が適用されます。
ソースコード | Flashゲーム研究所
ifステートメントはif ステートメントの条件が trueを返したときに実行するステートメントを指定するものです。
if (condition) { // ステートメント }
下記の例文を見てみましょう。sample_numの値が5を上回った場合はifステートメントの条件がtrueを返し、{}内の処理を実行します。
if(sample_num>5){
trace("sample_numの値が5以上なので処理を実行");
}
if{}ステートメントはifステートメントの条件がtrueを返した際に実行される処理です。
例題
ボタンオブジェクトとNumberオブジェクトを生成します。
ボタンをクリックするとNumberオブジェクトに0〜9の値がランダムで代入されます。
その値をif文を使って判断します。
Numberオブジェクトが5より大きい場合はifステートメントの条件がtrueを返し{}のステートメント内の処理が適用されます。
ソースコード | Flashゲーム研究所
2007年10月08日
条件分岐カテゴリを新設
条件分岐処理についてのカテゴリを新設しました。Flashゲーム制作において分岐処理は欠かす事ができません。このカテゴリでは条件分岐の基本であるifの使用例や、trueとfalseを定義し、判断する方法を記述していきます。効率良く分岐処理を行っていく方法を模索していきます。






