DoTransitionの継続時間の指定が1秒以下にならない

  • 2009 年 4月 17 日
  • kosuke

ProgressionのDoTranstionコマンドにうまくいかないところがあったので記録。


使っていてコンマ秒以下の設定がうまく出来ないことに気づいた。

状況としては,

new DoTransition(this, Wipe, Transition.OUT, 0.5, Strong.easeOut, { startPoint:2 } );

とか書いたら上に0.5秒でワイプアウトして欲しいところですが、この0.5って継続時間がうまく動かない。

調べてみたら既に問題として公式のフォーラムに登録されていました。

エフェクトのdurationが1秒単位でしか設定できない

つまり、DoTranstionのduration(0.5のところ)は型がint型が指定されていて整数しか渡せないようです。intに整数以外の値で渡すと整数に丸められてエラーにもならないので秒単位でしか指定できないっぽい。

なもんで、フォーラムで指摘されているDoTransitionのコンストラクタのduration引数をNumber型に直したら問題は解決しました。

public function DoTransition( target:MovieClip, type:Class, direction:int, duration:Number, easing:Function, parameters:Object = null, initObject:Object = null ) {
	// 引数を設定する
	_target = target;
	_type = type;
	this.direction = direction;
	this.duration = duration;
	_easing = easing;
	_parameters = parameters;
 
	// スーパークラスを初期化する
	super( _execute, _interrupt, initObject );
}

何か意図があってint型になっているのかもしれないので自己責任で。
僕の場合、Transitionのエフェクトは同様の内容をクリップに別途持たせてしまうことが多く、あまりDoTransitionを使っていなかったので今頃になって気づいた。執筆時のProgressionのバージョンは3.1.52でした。

“DoTransitionの継続時間の指定が1秒以下にならない” に 2 件のコメント

  1. Gravatar Icon 通りすぎ より:

    この仕様を意図してるんだとしたら、全体的なモッサリ感は否めないと思う。未だに、調整や回答が無い感じがどうも・・。
    この記述を読んで助かりました。

  2. Gravatar Icon kosuke より:

    通りすぎさん。コメントありがとうございました。何かお役に立てたなら幸いです。
    そうですねー。これはバグっぽいんですが…。
    オープンソースのライブラリだけに使い手側で工夫をっ!ってところもありますね。
    今後のバージョンで解決されることを期待しましょう。

  3. コメントをどうぞ