obj.numChildrenはオブジェクト内でいくつのオブジェクトが表示されているかを計るプロパティです。
ソースコード
var sample1_sp:Sprite = new Sprite();
var sample2_sp:Sprite = new Sprite();
var child1_sp:Sprite = new Sprite();
child1_sp.graphics.beginFill(0x009933);
child1_sp.graphics.drawCircle(20, 20, 20);
var child2_sp:Sprite = new Sprite();
child2_sp.graphics.beginFill(0xCC9900);
child2_sp.graphics.drawCircle(30, 30, 30);
var child3_sp:Sprite = new Sprite();
child3_sp.graphics.beginFill(0xFF0066);
child3_sp.graphics.drawCircle(40, 40, 40);
sample1_sp.addChild(child1_sp);
sample1_sp.addChild(child2_sp);
sample2_sp.addChild(child3_sp);
trace(sample1_sp.numChildren); // 2
trace(sample2_sp.numChildren); // 1
numChildrenプロパティによってsample1_spには二つのオブジェクト、sample2_spには一つのオブジェクトが表示されてる事を参照する事ができます。

2008年06月26日
2008年06月25日
TweenEventで制御されたオブジェクトを参照する、target.obj
Tweenアニメーションで制御されたオブジェクトを参照するには、TweenEventでtarget.objを参照する事で制御されたオブジェクトを参照する事ができます。
ソースコード
//sample_mcのアルファ値を一秒かけて0から1に
my_tw=new Tween(sample_mc,"alpha",None.easeInOut,0,1,1,true)
//トゥイーンイベント終了後に「getObj」メソッドにアクセス
my_tw.addEventListener(TweenEvent.MOTION_FINISH, getObj);
}
function getObj(evt:TweenEvent)
{
trace(evt.target.obj)//制御されたオブジェクト「sample_mc」を参照
}
ソースコード
//sample_mcのアルファ値を一秒かけて0から1に
my_tw=new Tween(sample_mc,"alpha",None.easeInOut,0,1,1,true)
//トゥイーンイベント終了後に「getObj」メソッドにアクセス
my_tw.addEventListener(TweenEvent.MOTION_FINISH, getObj);
}
function getObj(evt:TweenEvent)
{
trace(evt.target.obj)//制御されたオブジェクト「sample_mc」を参照
}
2008年06月24日
Loaderオブジェクトがロードしたファイル名を取得するメソッドを作りました。
Loaderオブジェクトがロードしたファイル名を取得するメソッドを作りました。
Loaderオブジェクトの、contentLoaderInfo.urlプロパティから解析。
以下 ソースコード
var my_lo:Loader=new Loader();
my_lo.contentLoaderInfo.addEventListener(Event.COMPLETE,loadC);
my_lo.load(new URLRequest("sample.swf"));
function loadC(evt:Event)
{
trace("evt.target.content.parent="+evt.target.content.parent);
var load_lo:Loader=evt.target.content.parent;
//Loaderからロードされたファイル名を取得
var name_str= analyzeFileName(load_lo);
trace("name_str="+name_str);
}
function analyzeFileName(lo_obj:Object):String
{
//オブジェクトのファイル名を取得するメソッド
var name_str:String=lo_obj.contentLoaderInfo.url;
name_str=name_str.slice(name_str.lastIndexOf("/")+1,name_str.length);
return(name_str);
}
Loaderオブジェクトの、contentLoaderInfo.urlプロパティから解析。
以下 ソースコード
var my_lo:Loader=new Loader();
my_lo.contentLoaderInfo.addEventListener(Event.COMPLETE,loadC);
my_lo.load(new URLRequest("sample.swf"));
function loadC(evt:Event)
{
trace("evt.target.content.parent="+evt.target.content.parent);
var load_lo:Loader=evt.target.content.parent;
//Loaderからロードされたファイル名を取得
var name_str= analyzeFileName(load_lo);
trace("name_str="+name_str);
}
function analyzeFileName(lo_obj:Object):String
{
//オブジェクトのファイル名を取得するメソッド
var name_str:String=lo_obj.contentLoaderInfo.url;
name_str=name_str.slice(name_str.lastIndexOf("/")+1,name_str.length);
return(name_str);
}
2008年06月23日
[AXE] キャラクター表示エンジンを改造

AXEのキャラクター表示部分を改造。
AS3は一つのシステムを構築するのにも、何通りもの方法があるので、複数の着眼点から組んでいくのが重要だとわかりました。
もっと速くなる気がするので、いい方法が浮かんだら、また改造する予定。
セーブ周りの処理をいまから見直してきます。
LoaderのCOMPLETEイベントでロードされた オブジェクトを取得するevt,target.content.parent
Loaderオブジェクトがロードしたファイル本体を参照するには、evt,target.content.parentで参照が可能です。
sample_lo.contentLoaderInfo.addEventListener(Event.COMPLETE,sampleH)
sample_lo.load(new URLRequest("sample.swf"));
function sampleH(evt:Event):void
{
trace("ロードされたオブジェクト本体="+evt.target.content.parent);
}
evt,target.content.parentは覚えておくと色々便利なプロパティです。
sample_lo.contentLoaderInfo.addEventListener(Event.COMPLETE,sampleH)
sample_lo.load(new URLRequest("sample.swf"));
function sampleH(evt:Event):void
{
trace("ロードされたオブジェクト本体="+evt.target.content.parent);
}
evt,target.content.parentは覚えておくと色々便利なプロパティです。
[復讐]配列の値を切り取るspliceについて
配列の値を切り取るspliceについて
配列の値を削除する事ができるspliceについて解説します。
このメソッドを使うことで配列の中身の削除や追加など配列の中身を変更できます。
引数では配列の操作範囲を定義します。
第一引数は操作を行う配列エレメントのインデックス位置です。配列の操作を行う開始位置です。
第二引数では第一引数で指定した位置からいくつ配列を操作するかを定義します。配列をいくつ操作するかを定義します。
配列の操作は膨大なデータを扱うFlashゲームの制作に必須です。この様に配列を直接変更するspliceメソッドも使う機会が多いと思います。
今回は配列を生成しその配列の値をspliceメソッドで削除する処理を行います。
例文
配列オブジェクトsampleArrを生成。sampleArr.splice(2,4)と定義。配列の2のインデックス位置から4つの値を切り出す。traceでspliceによって切り出されたsampleArrを確認する。
ソースコード
var sampleArr:Array=new Array(1,2,3,4,5,6,7,8,9);trace(sampleArr);//output 1,2,3,4,5,6,7,8,9sampleArr.splice(2,4);trace("sampleArr = "+sampleArr)//output 12789
配列の値を削除する事ができるspliceについて解説します。
このメソッドを使うことで配列の中身の削除や追加など配列の中身を変更できます。
引数では配列の操作範囲を定義します。
第一引数は操作を行う配列エレメントのインデックス位置です。配列の操作を行う開始位置です。
第二引数では第一引数で指定した位置からいくつ配列を操作するかを定義します。配列をいくつ操作するかを定義します。
配列の操作は膨大なデータを扱うFlashゲームの制作に必須です。この様に配列を直接変更するspliceメソッドも使う機会が多いと思います。
今回は配列を生成しその配列の値をspliceメソッドで削除する処理を行います。
例文
配列オブジェクトsampleArrを生成。sampleArr.splice(2,4)と定義。配列の2のインデックス位置から4つの値を切り出す。traceでspliceによって切り出されたsampleArrを確認する。
ソースコード
var sampleArr:Array=new Array(1,2,3,4,5,6,7,8,9);trace(sampleArr);//output 1,2,3,4,5,6,7,8,9sampleArr.splice(2,4);trace("sampleArr = "+sampleArr)//output 12789
2008年06月06日
[メモ]AC_FL_RunContentでHTMLからSWFへ値を渡す。
AC_FL_RunContentでFlashVarsを渡す際にHTML側で定義するコード。
'FlashVars','変数名=値',
を記述。
//HTMLの記述
AC_FL_RunContent
(
//=========================
'FlashVars','set_str=sample',
//=========================
); //end AC code
//AS3側の記述
var my_obj:Object=loaderInfo.parameters;
var get_str:String=my_obj["set_str"];
//html_txtテキストフィールドにhtml側で定義した「sample」の文字列が表示される
html_txt.text=get_str;
'FlashVars','変数名=値',
を記述。
//HTMLの記述
AC_FL_RunContent
(
//=========================
'FlashVars','set_str=sample',
//=========================
); //end AC code
//AS3側の記述
var my_obj:Object=loaderInfo.parameters;
var get_str:String=my_obj["set_str"];
//html_txtテキストフィールドにhtml側で定義した「sample」の文字列が表示される
html_txt.text=get_str;
2008年06月05日
LoaderInfo.parameters
HTMLからFlashへFlashVarsパラメータやクエリを渡したいので調べてます。
LoaderInfo.parameters
AS側でこう定義するそうです。
var flashVars_obj:Object=loaderInfo.parameters;
Object型の変数で代入。
swfObject2.0を使っての値の受け渡し等を今から二時間ほど調べる予定。
LoaderInfo.parameters
AS側でこう定義するそうです。
var flashVars_obj:Object=loaderInfo.parameters;
Object型の変数で代入。
swfObject2.0を使っての値の受け渡し等を今から二時間ほど調べる予定。
2008年06月04日
[AXE]セーブ・ロードのインターフェイス

セーブ・ロードを行うシステムとインターフェイスを作成中。
選択画面でプレビューで表示できるのは大きく分けて五つです。
@ エピソードに設定されたサムネイル画像
A セーブした時点での日付(年:月:日:時:分)
B エピソードの話数
C エピソードタイトル
D セーブした時点で表示されていたテキスト
表示される情報はこの五つです。
ロードに必要な各値の取得システムは八割方できてるので、セーブ・ロードらしき動きはしますが、エピソード毎のサムネイルが書き込まれない時があるなど、細かいバグがあるので修正中です。
追加仕様が多いので、結構かかりそうです。
セーブインターフェイスのデザインはこれからですが、上記画像の様な少し特殊なインターフェイスになると思います。
2008年06月03日
[AXE]セーブ機能に日付の取得機能追加
AXEのセーブ機能を作ってます。
その中の処理の一部に、いつ保存したのかユーザーが確認できるように日付を取得する必要があります。
日付の保存コードを書いたのでメモ。
日付の取得自体は簡単なのですが、一桁の数の前に「0」をつける必要があります。
Date.minutes=4だった場合にはセーブ画面では04といった感じ。
日付や時間帯が一桁だった場合に、前に0をつけるコードが無駄に長いです。
専用メソッド作って、...rest使ってまとめて取得しても良いのですがセーブ機能でしか使わないのでそのまま取得。
ソースコード | Flashゲーム研究所
その中の処理の一部に、いつ保存したのかユーザーが確認できるように日付を取得する必要があります。
日付の保存コードを書いたのでメモ。
日付の取得自体は簡単なのですが、一桁の数の前に「0」をつける必要があります。
Date.minutes=4だった場合にはセーブ画面では04といった感じ。
日付や時間帯が一桁だった場合に、前に0をつけるコードが無駄に長いです。
専用メソッド作って、...rest使ってまとめて取得しても良いのですがセーブ機能でしか使わないのでそのまま取得。
ソースコード | Flashゲーム研究所
2008年06月02日
「元寇」カテゴリを新設しました

「元寇」カテゴリを新設しました。
「元寇」とは1274年と1281年の二度にわたって当時、大陸を支配していた元が日本を侵略してきた日本最古の対外戦争です。
ゲーム「神風」はこの元寇の歴史を絡めてストーリーが進んでいきます
元寇について多少の知識はあったつもりですが、ストーリーの題材として描くにあたって不足知識が多かったので、資料を読み返していました。
三〜五月中はプログラムはせずに、この辺りの資料を調べていたため、まともにブログが書けませんでした。
それでは、「元寇」についての知識のアウトプットをこのブログで行うかという事で、このカテゴリを作る事に思い至りました。
AS3のプログラムと随分趣が違うカテゴリで恐縮ですが、AS3のプログラムも「元寇」の歴史知識もゲーム「神風」を作る上で必要不可欠な事ですので、ご了承頂ければ幸いです。
また、「元寇」という日本史における一大事件には様々な見方があります
元寇に関しての資料を十数冊読みましたが、一つの細かい事象に対しても、資料事に見解が違い、様々な答えが存在しています。
自分がこのカテゴリで書く「元寇」に関する見解もその一つに過ぎないという事を、認識して頂ければ幸いです。
2008年06月01日
神風記

神風記について説明します。
神風記というタイトルは制作中のゲーム「神風」からとっています。
基本的にはゲーム制作に関わる事を中心とした雑記的な事を中心に書いていきます。
AS3のプログラミングやコード掲載はこれまでと変わらず行っていきます。
制作中のオリジナルADVエンジン「AXE」の開発日記やその過程で学んだ、AS3のコード掲載等ができればと思っています。
IT技術に関わる事や、その他の日々のニュースなど気になった事の個人的メモ等のアウトプットも行っていきます。
また、「神風」は実際の歴史を題材にしたゲームですので、「元寇」等のゲーム中で扱う歴史の事も書いていきます。
ゲーム制作、AS3コードの掲載、雑記、「元寇」の歴史等、






