onStart

言語バージョン

AS2 and AS3.

語法

... onStart:value, ...

パラメーター

value:Function — トゥイーン開始時に実行されるファンクション。当該トゥイーン中に指定されているプロパティの数にかかわらず、一度のみ実行される。ファンクションのスコープ(イベントが実行されるオブジェクト)は、onCompleteScopeパラメーターで特に指定されてない場合は、ターゲットオブジェクト自身。

用例

// myMovieClipを不可視化。フェードインの開始時に可視化。 (AS2)
showUp = function() {
	this._visible = true;
};
myMovieClip._visible = false;
myMovieClip._alpha = 0;
Tweener.addTween(myMovieClip, {_alpha:100, time:1, delay:4, onStart:showUp});
// 同じ事を匿名関数を使って実現
myMovieClip._visible = false;
myMovieClip._alpha = 0;
Tweener.addTween(myMovieClip, {_alpha:100, time:1, delay:4, onStart:function() { this._visible = true; }});

注記

このパラメーターに渡される参照はファンクションのみである。従って、実行するファンクションに()を使うなどして引数を渡すことはできない。そのような場合には、onStartParamsパラメーターを使う必要がある。例えば、下記の用法は誤りである。

Tweener.addTween(myMC, {_x:10, time:1, onStart:myFunction(), delay:1});
	

上記のコードを実行するとどうなるか。timeやdelayの値に関係なく即座にmyFunctionファンクションが実行される。さらに、onStartパラメーター(が指定されていたとして)の返り値も渡してしまう。つまり、正しく動作しない。そして、これはアクションスクリプトに意図された動作とは言えない。正しいコードは下記のようになる:

Tweener.addTween(myMC, {_x:10, time:1, onStart:myFunction, delay:1});
	

このようにすることで、ファンクションそのものをパラメーターとして渡すことができる。

同様の理由から、ファンクションの引数を括弧で囲んで渡すこともできない。例えば、これは動作しない:

Tweener.addTween(myMC, {_x:10, time:1, onStart:trace("I've started!"), delay:1});
	

これもやはり当該のファンクションが即座に実行され、パラメーター(が指定されていたとして)の返り値も渡してしまう。それは望まれる挙動ではない。ファンクションに引数を渡す正しい方法は、既に述べたとおりonStartParamsを使って次のように行う:

Tweener.addTween(myMC, {_x:10, time:1, onStart:trace, onStartParams:["I've started!"], delay:1});
	

言うまでもないが、意図して使う分には、トゥイーンのパラメーターとしてファンクションを直接実行することは可能である。これにより、トゥイーンのパラメーターとして、ファンクションの返り値を使うようなこともできる。例えば、次のようにしてランダムな位置をパラメーターとして取得することができる:

var getRandomPosition:Function = function(): Number {
	return Math.random() * 400;
};
Tweener.addTween(myMC, {_x:getRandomPosition(), time:1});
	

参照

onStartParams, onStartScope, onUpdate, onComplete, onOverwrite

メニューの表示について

このページの左側にメニューが表示されていない場合は、ここをクリックするとメニューを表示させることができます。

本ドキュメントについて