2009
9/29

TweenerColorExtension

TweenerのColorShortcutsクラスには、オブジェクトのカラーチャンネルを変更するための下記の拡張プロパティがあります。

_color_redMultiplier
_color_greenMultiplier
_color_blueMultiplier
_color_alphaMultiplier
_color_redOffset
_color_greenOffset
_color_blueOffset
_color_alphaOffset

Tweenerを使うようになる以前から、オブジェクトのカラーチャンネルを変更することは割と頻繁にあったのですが、Tweenerでこれらを設定しようと思った場合に、プロパティ名が長かったりするのでちょっと面倒だなと思ってました。

import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;
ColorShortcuts.init();

Tweener(my_mc,{
	_color_redMultiplier:1,
	_color_greenMultiplier:1,
	_color_blueMultiplier:1,
	_color_alphaMultiplier:0.5,
	_color_redOffset:125,
	_color_greenOffset:60,
	_color_blueOffset:255,
	_color_alphaOffset:255,
	time:1,
	transition:"easeOutSine"
});

そこで、R/G/B/AのMultiplier値およびOffset値をまとめて指定するためのTweener用拡張クラス「TweenerColorExtension」を作成しました。下記の例の様に、_colorMultipliersというプロパティに[_color_redMultiplier, _color_greenMultiplier, _color_blueMultiplier, _color_alphaMultiplier]の順の配列を、_colorOffsetsというプロパティに[_color_redOffset, _color_greenOffset, _color_blueOffset, _color_alphaOffset]の順の配列を指定することで、それぞれの値を設定できます。

import caurina.transitions.Tweener;
import TweenerColorExtension;
TweenerColorExtension.init();

Tweener(my_mc,{
	_colorMultipliers:[1,1,1,0.5],
	_colorOffsets:[125,60,255,255],
	time:1,
	transition:"easeOutSine"
});

ColorShortcutsのimportやinitは必要ありません(TweenerColorExtensionのinitの中で処理してます)。

ソースコードやサンプルファイルは下記で配布してますので、もし使ってみたい方がいらっしゃったらご自由にどうぞ。

tonpoo/TweenerColorExtention – Spark project

Filed under: actionscript3,tweenerComments (0)— tonpoo @ 11:40 AM

2009
8/6

えらいこっちゃ

いつものようにGoogle Analyticsでこのサイトのアクセス状況をみてみたらこんなことに↓

ss

なんじゃこりゃ?

調べてみるとどうやらbg-zen氏のTwitterでのつぶやきを契機にTweener追悼の流れが起きて、この記事へのリンクが爆発的に増えたらしい。おお、BeInteractive!の中の人までつぶやいてる。こりゃビックリ。Twitter効果すごいなあ。皆さん閲覧ありがとうございます。

それにしても、やっぱりTweener愛好家の方々、たくさんいらっしゃるんですね。僕も早く次世代の(?)Tweenライブラリを導入しなきゃと思いつつ、未だにTweenerを常用してる一人だったりします。ていうか、リファレンスの和訳とかしちゃってる(まだ終わってませんが・・・)こともあって、愛着あるんですよね。

次はBetweenAS3かなと思いつつ、まだしばらくはTweenerを使い続けると思います。Project ownerのZeh Fernandoさん、本当にありがとう!

Filed under: topics,tweenerComments (0)— tonpoo @ 1:00 AM

2009
6/19

Tweenerの終焉

つい数日前に「Tweener、がんばれ!」とか言った側から、Tweenerの開発終了について、開発者のZeh氏のブログで公式なアナウンスが出てしまいました(汗)。

Zeh Fernando » Blog Archive » Tweener, 4 years later – A post mortem

上記記事の内容を意訳してみました。間違ってる部分も結構あるはずですが、大意はつかめてると思います。
(続きを読む…)

Filed under: translation,tweenerComments (11)— tonpoo @ 9:20 PM

2009
6/16

BetweenAS3

Tweenerと同じようなトゥイーンライブラリに「BetweenAS3」というのがあることを知りました。

BeInteractive! [BetweenAS3 (Draft)]

Tweener ユーザが Tweener に不満が出てきたとき、次に使えるようなものを目指していて」とのこと。むむむ、Tweenerの強力なライバルでしょうか。

というか、下記ページなんかを見ると、「パフォーマンス比較のみで言えば、どの比較でもビルトインのTween機能を除くと、当初一番人気だったTweenerがかなり劣ってる状態です。」などという評価まで出ている始末(汗)。

「BetweenAS3」のパフォーマンにびっくり! | logicalyze::blog

ドキュメントの和訳なんぞに挑戦している手前、当面はTweenerを使うつもりでいますが、Tweenerのパフォーマンスがあがったりしないことには、そのうちこっちに切り替えるようなことになるのかもしれないですね・・・。Tweener、がんばれ!

Filed under: actionscript3,betweenas3,tweenerComments (0)— tonpoo @ 11:49 AM

2009
6/10

Tweener 1.33.74

Tweenerがバージョンアップ(1.32.74→1.33.74)したとの報告が公式MLでありました。

[Tweener] Tweener 1.33.74

1.32.74のバージョンアップ時の変更点(Tweenの上書きを「オプション」扱いとし、デフォルトでは無効とした。)が不評だったことを受けてのバージョンアップのようです。詳細はまだ読んでいません。

【追記】Zeh氏の投稿内容を意訳しました↓

List, Makc, et al,

何人かの友達と話をしたら建設的なフィードバックをもらうことができて、Tweener 1.32.74で追加した変更-トゥイーンの上書きをオプション扱いにして、デフォルトではそのパラメーターをoffにする(従来は強制的にtrueになっていたのと対照的に)-について、間違ったやり方だったということに気がついた。僕自身としては、全体の構造を考えればより良い決断だと信じてたんだけど、その変更によって自分のスクリプトが動かなくなるかどうかがわからない(知らない)ままアップデートしてしまって困ってしまう人たちがいるということを十分考慮できなかった。「まあ、そういう時はアップデートしなければいいんだし」というように考えてもいたんだけど、考えてみれば、既存のスクリプトを動作させるために、そのユーザーに特定のバージョンを使うことを強制するというのは最適な解決方法ではないと思うし、実際そのコードが公式にlast version(古いバージョン?)になったら結構辛いと思ったんだ。

本当に、ごめんなさい。

その埋め合わせの意味もあって、SVNとドキュメントを、Tweener 1.33.74版にアップデートしました。このバージョンの重要な変更点は二つ。一つは、”autoOverwrite”という静的プロパティができたこと。このプロパティで、”overwrite”パラメーターのデフォルト値を指定することができる。もう一つは、その”autoOverwrite”プロパティのデフォルト値がtrueだという点。これによって、デフォルトの状態ならば、overwriteバラメーターが加わった以降の過去のバージョンのTweenerと同じように動作するようになったわけだ。

これはつまり、過去の「安定版(stable)」から1.33.74にアップデートしても、デフォルト状態のoverwriteパラメーターも含め、それまで通りにスクリプトが動作する、ということになる。

違いとしては、オプションのautoOverwriteプロパティを使うか、あるいはoverwriteパラメーターを使うかすることで、スクリプトの動作を設定することができるようになったということ。

コードにまとめると、以下の通り:

// Tweenが上書きされるケース
Tweener.addTween(myBox, {x:400, time:4, transition:"linear"});
Tweener.addTween(myBox, {x:100, time:2, transition:"linear"});

// Tweenが上書きされないケース
Tweener.autoOverwrite = false;
Tweener.addTween(myBox, {x:400, time:4, transition:"linear"});
Tweener.addTween(myBox, {x:100, time:2, transition:"linear"});

// Tweenが上書きされないケース
Tweener.addTween(myBox, {x:400, time:4, transition:"linear"});
Tweener.addTween(myBox, {x:100, time:2, transition:"linear",overwrite:false});

// Tweenが上書きされるケース
Tweener.autoOverwrite = false;
Tweener.addTween(myBox, {x:400, time:4, transition:"linear"});
Tweener.addTween(myBox, {x:100, time:2, transition:"linear",overwrite:true});

トゥイーンの上書きを行わないことの利点は、なんといってもその方が処理速度が速いこと。上書きすべきものがあるかどうかの判定をしなくてすむからね。だから、もしループで何百ものトゥイーンを使うような場合には、”overwrite:false”を使うと処理速度が上がるよ。

AS2 FL7, AS2, AS3, AS3バージョンについては、テストの上でSVNサーバーを更新した。本当は先週の日曜日にアップロードしたかったんだけど、サーバーが落ちてしまった。結局、eclipseとFlashとTortoiseSVNをインストールするのに今日までかかってしまった。もし何かエラーが出てたら、誰か教えてくださいな。

もし致命的な(?)修正点とかがないようならば、Tweenerの更新通知を僕自身が投稿することで、このバージョンが次の「安定版」になって、来週にはダウンロードリストに追加される予定です。

Zeh

Filed under: translation,tweenerComments (0)— tonpoo @ 12:11 PM

2009
5/29

Tweener: TextShortcuts

「超訳:Tweenerドキュメント&言語リファレンス」の翻訳作業の中で、TweenerのTextShortcutsについてやってた時に知ったこと。Tweenerって、テキストフィールドの文字列までトゥイーンできるんですね!どういうことかというと、こういうこと↓

Tweener 1.31.66 を試す(8) ~TextShortcuts~【閃光的網站・弛緩複合体 -Review Division-】

「_text」プロパティとかおもしろいなあ。これ、今度使おう。

Filed under: flash,tweenerComments (0)— tonpoo @ 7:34 PM

2009
5/20

Tweener 1.32.74

Tweenerがバージョンアップ(1.31.74→1.32.74)との報告が公式MLでありました。

[Tweener] Tweener 1.32.74

変更点についての記述は下記の通り(一部抜粋)。

変更点は至ってわずか(ほんのコード2行分)。でも重要な変更です。

*Tweenの上書きを「オプション」扱いとし、デフォルトでは無効とした。
*addTween()に「overwrite:」パラメーターを新規に追加。この値が「true」だったら、新しいtweenとオーバーラップする同一オブジェクトの同一プロパティに設定されているすべてのtweenを上書きする。

Tweenの上書きをたくさん使ってるような場合には、この変更によって互換性が失われることがあるかもしれません。ただ、特に大量の数のtweenを生成する場合のパフォーマンスが大幅に向上されるので、こうすることが重要だと考えました。

公式サイトの方にはまだ反映されてないし、上記メールの文中にあるURLはSVN用のものなので、Subversion使ってる人向けってことですかね。

Filed under: actionscript2,actionscript3,tweenerComments (0)— tonpoo @ 10:28 AM

2009
4/22

超訳:Tweenerドキュメント&言語リファレンス

Tweenerのドキュメントの一部を日本語化してみました。ただ、未完成&わりといいかげんなので、参考程度に利用してみてください。

【超訳:Tweenerドキュメント&言語リファレンス】

Filed under: actionscript2,actionscript3,translation,tweenerComments (2)— tonpoo @ 11:35 AM

2009
4/21

Tweener事始め:addCaller()

addCallerメソッドを使うことで、タイマーのような役割を持たせることもできる。
ただ、transitionパラメーターを何も指定しないと、onUpdateパラメーターで指定したファンクションが等間隔に実行されるのではなく、実行間隔にイージングがついて実行されてしまうようなので注意。

//Tweenerクラスを読み込み
import caurina.transitions.Tweener;

var val0:Number = 0;
var val1:Number = 0;

tween0_btn.onRelease = function():Void{
    //xReflesh0ファンクションを10秒間に100回実行
    Tweener.addCaller(this,{onUpdate:xReflesh0, time:10, count:100});
};
tween1_btn.onRelease = function():Void{
    //xReflesh1ファンクションを10秒間に100回、等間隔に実行
    Tweener.addCaller(this,{onUpdate:xReflesh1, time:10, count:100, transition:“linear”});
};
reset_btn.onRelease = function():Void{
    //リセット
    xReset();
};

function xReflesh0():Void{
    val0++;
    text0.text = val0;
}
function xReflesh1():Void{
    val1++;
    text1.text = val1;
}
function xReset():Void{
    Tweener.removeAllTweens();
    val0 =
    val1 = 0;
    text0.text =
    text1.text = “”;
}
Filed under: tweenerComments (0)— tonpoo @ 3:10 PM

Tweener事始め:transitionパラメーター

addTweenにtransitionパラメーターを追加してみる。transitionパラメーターの種類はこのページにあるように沢山あるんだけど、とりあえず「Simple」な21パターンを試してみた。あと、removeAllTweens()を使ってリセットボタンも実装。

//Tweenerクラスを読み込み
import caurina.transitions.Tweener;

reset_btn.onRelease = function():Void{
    //全トゥイーンを削除
    Tweener.removeAllTweens();
    //ball_mcを戻す
    ball_mc._x = 30;
};
tween0_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“linear”});
};
tween1_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeInSine”});
};
tween2_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeOutSine”});
};
tween3_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeInQuad”});
};
tween4_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeOutQuad”});
};
tween5_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeInCubic”});
};
tween6_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeOutCubic”});
};
tween7_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeInQuart”});
};
tween8_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeOutQuart”});
};
tween9_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeInQuint”});
};
tween10_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeOutQuint”});
};
tween11_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeInExpo”});
};
tween12_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeOutExpo”});
};
tween13_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeInCirc”});
};
tween14_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeOutCirc”});
};
tween15_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeInElastic”});
};
tween16_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeOutElastic”});
};
tween17_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeInBack”});
};
tween18_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeOutBack”});
};
tween19_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeInBounce”});
};
tween20_btn.onRelease = function():Void{
    Tweener.addTween(ball_mc, {_x:270, time:1, transition:“easeOutBounce”});
};
Filed under: tweenerComments (0)— tonpoo @ 1:32 PM

Older Posts »