Progression4におけるDoTweenerのonUpdateの記述方法が分からなかったので色々調べました。
最初試した方法
var command:SerialList = new SerialList(); command.addCommand( // mcはMovieClip new DoTweener(mc, { time: 10, onUpdate: function() {trace("UPDATE!")} } ) ); command.execute();
trace文は出力されず。なんかProgression3のときはこれで出来てた気がするんだけども。
次に試した方法
DoTweener - Progression 4.0 API Referenceを見てみると、onUpdateメッソドがあるじゃん、というわけで。
var command:SerialList = new SerialList(); command.addCommand( // mcはMovieClip new DoTweener(mc, { time: 10} ).onUpdate(function() {trace("UPDATE!");} ) ); command.execute();
エラーとなる。なんでだろう?とドキュメント良く見ると、
onUpdate property onUpdate:Function [read-write]
setterではありませんか!
気を取り直した方法
var command:SerialList = new SerialList(); command.addCommand( // mcはMovieClip new DoTweener(mc, { time: 10} ).onUpdate = function() {trace("UPDATE!");} ); command.execute();
もちろんだめ。setterの返り値はvoidですよ!
結論
DoTweener - Progression 4.0 API ReferenceにあるDoTweenerのconstructorを見てみると。
DoTweener () constructor public function DoTweener(target:Object, parameters:Object, initObject:Object = null)
第三引数で、初期化プロパティを指定したObjectを渡せるんですね。ということは、これ使えば行けるんじゃね?というわけで試したのが以下。
var command:SerialList = new SerialList(); command.addCommand( // mcはMovieClip new DoTweener(mc, { time: 10 }, { onUpdate: function(): void { trace("UPDATE!");} }); ); command.execute();
無事に、trace文が出力されました。良かった良かった。