イナヅマTVログ

2008.09.08
16:47
author: taikiken
0件のコメント

GoASAP, LinearGoでtweenしてみる

GoASAPのコアなクラスLinearGoを使ってtweenしてみる。

GoEvent.UPDATEをリスナーしてハンドラを作る。
ハンドラではGoEventのtarget.positionプロパティを使ってプロパティを動かす。
target.positionは0から1の間のNumber、移動係数(?)のようなもの。
LinearGoのスーパーGoItem. correctValueを使ってtarget.position値を使った計算結果をuseRounding=trueにあうように変換する。
exdendsしたサブクラスでは必ずこの関数を使いナ、だとさ。

useRelativeをtrueにしたときとの違いがまだ良く分からない。

HydroTweenが継承しているクラス、LinearGo, GoASAPを使ってHydroTweenを理解してみる作戦。
続きを読む →

2008.09.07
16:18
author: taikiken
0件のコメント

GoASAP, LinearGoのupdate関数をFixする

HydroTween, HydroSequenceでLinearGoRepeaterを使った時のcycle後の最初の値がおかしいのを修正した。

GoASAPのユーザー側コアクラスはLinearGo。
このクラスをextendsして自分なりのクラスを作ってね、というのがGoASAPの考え方のようで、だからgoplaygroundが存在しHydroTweenやGo3Dが生まれたんだナ。

LinearGoのupdateがモーションデータを計算している関数、開始や折返時の条件判定がcycleの時を考慮していないので修正した。
続きを読む →

2008.09.06
05:04
author: taikiken
0件のコメント

LinearGoRepeaterでtweenを繰返し、CONSTRUCTORの引数

org.goasap.managers.LinearGoRepeaterはorg.goasap.managers.Repeaterを継承した、tween繰返しを管理してくれるクラス。
AS2のmx.transitions.Tween.yoyo, startができる、繰返し回数を管理してくれるのが便利。
AS3でもfl.transitions.Tweenとして生き残っているけど複数のTweenを同時に実行した時などで不具合が出る確率が高いので、AS3では使っていない。
AS2の時にモーションは、mx.transitions.Tweenは便利だけど構造が複雑でパフォーマンスが悪いので、mx.effects.Tweenを継承したクラスを自作して利用していた。
mx.effects.Tweenも移植されていたら良かったのにと思ってたら、Flexライブラリには入っていた。

new LinearGoRepeater(cycles: uint=1, reverseOnCycle:Boolean=true, easingOnCycle: Function=null, extraEasingParams: Array=null)
 
/**
* 繰返し回数、
* 無限の指定は Repeater.INFINITE, 0
*/
cycles
 
/**
*  true:行って戻る mx.transitions.Tween.yoyoと同じ
*  false:初めからやり直し mx.transitions.Tween.startと同じ
*/
reverseOnCycle:Boolean
 
/**
* cycle時のeasing関数、指定しないと同じ関数を使う
*/
easingOnCycle

2008.09.05
03:49
author: taikiken
2件のコメント

Class内でstageプロパティがnullになる

Sprite, MovieClipを継承したクラスでstageがnullになりアクセスできない。
Flashコンパイル時に以下のエラーが。
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。

ステージにインスタンスを追加したことを確認した後で参照しないといけない様子。

package  {
	import flash.display.MovieClip;
	import flash.events.Event;
	public class SomeClass extends MovieClip {
		public function SomeClass(){
			super();
			if (stage) init(null);
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		private function init(evt:Event) : void {
			if (evt != null)
				removeEventListener(Event.ADDED_TO_STAGE, init);
			trace (stage.stageWidth);
		}
	}	
}

なるほどねって感じだったりするけど、Flashヘルプのstageが使われているサンプルスクリプトもエラーが出てちょっとハマった。

2008.09.04
02:57
author: taikiken
0件のコメント

HydroSequence, HydroTweenでColorMatrix(hue,saturation,contrast,brightness)をtween

HydroSequence, HydroTweenにはhue,saturation,contrast,brightnessをtweenできる。
FlashのColorMatrixFilterを時系列で更新している、コア部分はGrant SkinnerさんのColorMatrixクラスが移植されていた。

ActionScript 2時にリリースされ、自分なりにextendsしたクラスを作ったりもし大変お世話になったクラスの一つ。
AS3ように自分でアップデートしていたが実際にはAS3版もリリースされていたのは、HydroTweenのソースにクレジットが記述されていて気がついた。

AS2:http://www.gskinner.com/blog/archives/2005/09/flash_8_source.html
AS3:http://www.gskinner.com/blog/archives/2007/12/colormatrix_upd.html

AS2で作ったhue,saturation,contrast,brightnessシミュレーター。
[swfobj src=”http://www.inazumatv.com/contents/wp-content/uploads/2008/09/colormatrixfilterslider_nofps.swf” width=”600″ height=”390″ id=”colormatrixfilterslider_nofps” name=”colormatrixfilterslider_nofps” allowfullscreen=”false” required_player_version=”8.0.0.0″]

2008.09.03
11:00
author: taikiken
0件のコメント

HydroTween, HydroSequence repeaterにバグ?

HydroTween, HydroSequenceの繰返し処理指定のrepeaterがどうも正しく動作しない。
HydroTweenではObjectかorg.goasap.managers.LinearGoRepeaterのどちらか、HydroSequenceではorg.goasap.managers.LinearGoRepeaterで指定する。
Objectのときはかろうじて動作しているように見えるが行って帰る最初に初期値がセットされてしまう。
hydrotik側のバグなのかGoASAP側なのかは検証が必要。
続きを読む →

2008.09.02
23:23
author: taikiken
0件のコメント

HydroSequenceで一気にtween

HydroSequenceに複数インスタンスのtweenをおまかせ。
連続したモーションの設定が手軽にできる。
[swfobj src=”http://www.inazumatv.com/contents/wp-content/uploads/2008/09/hydro-seq-0b.swf” width=”600″ height=”300″ id=”hydro-seq-0b” name=”hydro-seq-0b” allowfullscreen=”false” required_player_version=”9.0.124″]
続きを読む →

2008.09.01
03:44
author: taikiken
0件のコメント

new HydroTween(),HydroTween.goの引数

HydroTweenはパワフルだけど融通きく便利なモーションクラス。

var hydro: HydroTween = new HydroTween(parameter1, parameter2,.....);
hydro.start();

HydroTween.go(parameter1, parameter2,.....);
は同じように動く。

var hydro: HydroTween = new HydroTween(parameter1, parameter2,.....);
でインスタンスを作るときはtargetを配列指定ができない。
続きを読む →

2008.08.31
00:45
author: taikiken
0件のコメント

HydroSequence,CONSTRUCTORの引数

Flashのインスタンスモーションで使えるHydroTweenも強力なクラスだけど、HydroSequenceはさらに便利な機能が満載。

HydroSequenceの引数は一定の様式を備えていればいくつでも設定できる優れもの。
反面、そのフレシキブルな特性のためか最初はどうしたらいいのか戸惑ったりもしそう。
設定次第で同時に複数のインスタンスの複数のプロパティをtweenしたり、連続して別のtweenを実行できたり、コールバック関数し引数の設定ができたりと「いたれりつくせり」な豪華仕様。

var seq:HydroSequence = new HydroSequence(...args);
seq.start()

...argの部分は

[{target:target,property:value...}...]

とどうすんのって感じ。
続きを読む →

2008.08.30
02:36
author: taikiken
0件のコメント

HydroSequenceで連続tween

Flashでこのインスタンスのモーションが終わったら次はこのモーションなんてのをActionscriptで作るのは面倒だけど、HydroSequenceを使うと連続したtweenも簡単に作れる。

[swfobj src=”http://www.inazumatv.com/contents/wp-content/uploads/2008/09/hydro-go-10x.swf” width=”550″ height=”200″ id=”HedroSequenceFig1″ name=”HedroSequenceFig1″ allowfullscreen=”false” required_player_version=”9.0.124″]
続きを読む →