プロが教えるわが家の防犯対策術!

お世話になります。

Flashのアクションスクリプトを勉強しはじめた者です。
参考書を読んで勉強をしているのですが、唐突にinit();関数?
が出てきて、説明もないので、何を行うための関数なのか分らず困っております。
他の方の質問を見させて頂き、動作的には「初期化」をする関数なのかなぁ?とは思っておりますが、なぜ、初期化が必要なのか?これをしないと、どうなってしまうのか?参考書に何の説明がなく、困惑しております。
私が理解をしていないため、質問の仕方も下手だと思いますが、ご教授いただければと思っております。よろしくお願い致します。

状況としてはプログレスバーを作る勉強をしています。
ソースは以下になります。
----------------------------------------
var percentText:TextField;

var clipLoader:MovieClipLoader;
var loadingListener:Object;

init();

function init():Void
{
clipLoader = new MovieClipLoader();
loadingListener = new Object();
loadingListener.onLoadProgress = updateProgress;
loadingListener.onLoadInit = finishProgress;
clipLoader.addListener( loadingListener );
}

function loadTarget( targetFile:String, targetMovie:MovieClip ):Void
{
setPercent( 0 );
clipLoader.loadClip( targetFile, targetMovie );
}

function updateProgress( target:MovieClip, loaded:Number, total:Number ):Void
{
var percent:Number = Math.floor( loaded / total * 100 );
setPercent( percent );
}

function finishProgress():Void
{
setPercent( 100 );
}

function setPercent( percent:Number ):Void
{
percentText.text = percent.toString();
}
-----------------------------------------------

A 回答 (1件)

> 唐突にinit();関数?



順番から言えば唐突ですが,
そのすぐ下の行に

function init():Void
{ …

と続いているではありませんか。


init(); とは,
「ユーザ定義関数 function init() を実行しなさい。」
ということです。

つまり,
init はそのスクリプトの作者が勝手に作った(勝手に定義した)関数名で,
後にカッコを付けた init() は その init関数 を実行する ということです。


ちなみに,その init の内容に注釈を入れると次のようになります。

// ユーザ定義関数 init を定義 : 戻り値なし
function init():Void
{
// MovieClipLoaderクラスのインスタンス clipLoader を作成
clipLoader = new MovieClipLoader();
// ロードを監視するためのオブジェクト loadingListener を作成
loadingListener = new Object();
// ロード中は updateProgress を実行
loadingListener.onLoadProgress = updateProgress;
// ロード完了時には finishProgress を実行
loadingListener.onLoadInit = finishProgress;
// clipLoader のリスナー(監視人)として loadingListener を登録
clipLoader.addListener( loadingListener );
}
    • good
    • 0
この回答へのお礼

BlurFiltan様

大変。丁寧で分かりやすい回答をいただき、ありがとうございました!おかけですっきりしました。

モヤモヤしたまま参考書を読み進めていましたが、これで、より理解しながら読みすすめられそうです。
また、その後のスクリプトの説明まで記載して頂き、大変感謝しております。
BlurFiltan様のように一人前にスクリプトを使いこなせるように頑張りたいと思います!
ご回答いただき、ありがとうございました!!

お礼日時:2008/10/20 13:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!