HYPEを触ってみた-VariableVibration

12月 6th, 2010 § 0 comments § permalink

振動範囲を絶対的に指定するFixedVibrationに対して、振動範囲を相対的に指定するVariableVibrationがあります。

VariableVibrationでx位置とy位置の値を変化させてみました。

This movie requires Flash Player 9

package  {
	import flash.display.Sprite;
	import hype.extended.behavior.VariableVibration;
	
	public class Hype extends Sprite {
		private var rect:Rect;
		
		public function Hype() {
			rect = new Rect();
			addChild(rect);
			
			rect.x = stage.stageWidth /2;
			rect.y = stage.stageHeight /2;
		
			//第1引数:ターゲットオブジェクト
			//第2引数:ターゲットプロパティ
			//第3引数:バネの係数
			//第4引数:イージングの係数
			//第5引数:振動範囲
			var behaviorX:VariableVibration = new VariableVibration(rect, "x", 0.9, 0.1, 20);
			var behaviorY:VariableVibration = new VariableVibration(rect, "y", 0.9, 0.1, 20);
			behaviorX.start();
			behaviorY.start();
		}
		
	}
}

ますます生きてるみたいですね。

今度はalphaとrotationとscaleの値をFixedVibrationで、x位置とy位置の値をVariableVibrationで変化させてみました。
一気に10個です。

This movie requires Flash Player 9

package {
import flash.display.Sprite;
import hype.extended.behavior.FixedVibration;
import hype.extended.behavior.VariableVibration;

public class Hype extends Sprite {
private var rect:Rect;

public function Hype() {
var rect_array:Array = new Array();

for(var i:int = 1; i < 11; i++){ rect_array[i] = new Rect(); addChild(rect_array[i]); rect_array[i].x = stage.stageWidth /2; rect_array[i].y = stage.stageHeight /2; var behavior_obj:Object = new Object(); behavior_obj["alpha"] = new FixedVibration(rect_array[i], "alpha", 0.9, 0.1, 0.0, 1.0, false); behavior_obj["rotation"] = new FixedVibration(rect_array[i], "rotation", 0.9, 0.1, 0, 360, false); behavior_obj["scale"] = new FixedVibration(rect_array[i], "scale", 0.9, 0.1, 0.5, 2.0, false); behavior_obj["x"] = new VariableVibration(rect_array[i], "x", 0.9, 0.1, 20); behavior_obj["y"] = new VariableVibration(rect_array[i], "y", 0.9, 0.1, 20); behavior_obj["alpha"].start(); behavior_obj["rotation"].start(); behavior_obj["scale"].start(); behavior_obj["x"].start(); behavior_obj["y"].start(); } } } } [/sourcecode] 綺麗ですねー。

HYPEを触ってみた-FixedVibration

12月 6th, 2010 § 0 comments § permalink

続きましてFixedVibrationクラスを試してみました。
まずはalphaの値を変化させてみました。

This movie requires Flash Player 9

package  {
	import flash.display.Sprite;
	import hype.extended.behavior.FixedVibration;
	
	public class Hype extends Sprite {
		private var rect:Rect;
		
		public function Hype() {
			rect = new Rect();
			addChild(rect);
			
			rect.x = stage.stageWidth /2;
			rect.y = stage.stageHeight /2;
		
			//第1引数:ターゲットオブジェクト
			//第2引数:ターゲットプロパティ
			//第3引数:バネの係数
			//第4引数:イージングの係数
			//第5引数:最小値
			//第6引数:最大値
			//第7引数:相対値か絶対値か
			var behavior:FixedVibration = new FixedVibration(rect, "alpha", 0.9, 0.1, 0.0, 1.0, false);
			behavior.start();
		}
		
	}
}

ゆらゆらと明滅しています!
最小値と最大値の最大範囲はプロパティによって変化します。

続いてscale、rotation、x位置とy位置を変化させてみました。

This movie requires Flash Player 9

package  {
	import flash.display.Sprite;
	import hype.extended.behavior.FixedVibration;
	
	public class Hype extends Sprite {
		private var rect:Rect;
		
		public function Hype() {
			var rect_array:Array = new Array();
			
			for(var i:int = 1; i < 4; i++){
				rect_array[i] = new Rect();
				addChild(rect_array[i]);
				rect_array[i].x = stage.stageWidth / 4 * i;
				rect_array[i].y = stage.stageHeight /2;
			}
		
			//scaleを振動
			var behavior1:FixedVibration = new FixedVibration(rect_array[1], "scale", 0.9, 0.1, 0.5, 2.0, false);
			behavior1.start();
		
			//rotationを振動
			var behavior2:FixedVibration = new FixedVibration(rect_array[2], "rotation", 0.9, 0.1, 0, 360, false);
			behavior2.start();
		
			//x位置とy位置を振動
			var behavior3x:FixedVibration = new FixedVibration(rect_array[3], "x", 0.9, 0.1, -40, 40, true);
			var behavior3y:FixedVibration = new FixedVibration(rect_array[3], "y", 0.9, 0.1, -40, 40, true);
			behavior3x.start();
			behavior3y.start();
		}
		
	}
}

面白いですねー。

ではいっそのこと、ぜんぶ一緒にかけてみます。

This movie requires Flash Player 9

package  {
	import flash.display.Sprite;
	import hype.extended.behavior.FixedVibration;
	
	public class Hype extends Sprite {
		private var rect:Rect;
		
		public function Hype() {
			var rect = new Rect();
			addChild(rect);

			rect.x = stage.stageWidth /2;
			rect.y = stage.stageHeight /2;

			//alpha、scale、rotation、x位置とy位置を振動
			var behaviorAlpha:FixedVibration = new FixedVibration(rect, "alpha", 0.9, 0.1, 0.0, 1.0, false);
			var behaviorScale:FixedVibration = new FixedVibration(rect, "scale", 0.9, 0.1, 0.5, 2.0, false);
			var behaviorRotation:FixedVibration = new FixedVibration(rect, "rotation", 0.9, 0.1, 0, 360, false);
			var behaviorX:FixedVibration = new FixedVibration(rect, "x", 0.9, 0.1, -40, 40, true);
			var behaviorY:FixedVibration = new FixedVibration(rect, "y", 0.9, 0.1, -40, 40, true);
			
			behaviorRotation.start();
			behaviorScale.start();
			behaviorAlpha.start();
			behaviorX.start();
			behaviorY.start();
		}
		
	}
}

生きてるみたいです!

これらも、ひとつひとつは2行で書けますね。
簡単です。

HYPEを触ってみた-MouseFollow

12月 6th, 2010 § 0 comments § permalink

昨日のFITC Tokyoのジョシュア・デイビス氏のセッションに触発されて、HYPE frameworkを触ってみました。
http://www.hypeframework.org/

あらかじめ用意しておいたRectクラス。

package {
	import flash.display.Sprite;
	
	public class Rect extends Sprite {
		public function Rect() {
			graphics.beginFill(0xddeeff);
			graphics.drawRect(-10, -10, 20, 20);
			graphics.endFill();
		}
	}
}

まずはマウスを追随させるMouseFollowクラスを試してみました。

This movie requires Flash Player 9

package  {
	import flash.display.Sprite;
	import hype.extended.behavior.MouseFollow;
	
	public class Hype extends Sprite {
		private var rect:Rect;
		
		public function Hype() {
			rect = new Rect();
			addChild(rect);
			
			//第1引数:ターゲットオブジェクト
			var behavior:MouseFollow = new MouseFollow(rect);
			behavior.start();
		}
		
	}
}

とっても簡単!

続いて、遅延のあるMouseFollowEaseクラス。

This movie requires Flash Player 9

package  {
	import flash.display.Sprite;
	import hype.extended.behavior.MouseFollowEase;
	
	public class Hype extends Sprite {
		private var rect:Rect;
		
		public function Hype() {
			rect = new Rect();
			addChild(rect);
			
			//第1引数:ターゲットオブジェクト
			//第2引数:イージングの値
			var behavior:MouseFollowEase = new MouseFollowEase(rect,0.2);
			behavior.start();
		}
		
	}
}

イージングの係数は0〜1の間で設定します。
0だと追随せず、1だと遅延しません。

続いてマウスを追い越すMouseFollowSpringクラス。

This movie requires Flash Player 9

package  {
	import flash.display.Sprite;
	import hype.extended.behavior.MouseFollowSpring;
	
	public class Hype extends Sprite {
		private var rect:Rect;
		
		public function Hype() {
			rect = new Rect();
			addChild(rect);
			
			//第1引数:ターゲットオブジェクト
			//第2引数:バネの係数
			//第3引数:イージングの係数
			var behavior:MouseFollowSpring = new MouseFollowSpring(rect,0.8,0.4);
			behavior.start();
		}
		
	}
}

バネの係数は0〜1の間で設定します。
0だと追い越さず、1だと振幅が縮まりません。

いずれの効果も2行で実現できちゃいます。
これだけでもちょっと楽ができますね。
デザイナーとしては嬉しいです。

GTD≒ActionScript

8月 23rd, 2009 § 0 comments § permalink

挫折ぎみですが、GTDを取り入れています。
以下、GTDについて。
Getting Things Done – Wikipedia
Getting Things Done(GTD)まとめ – 誠 Biz.ID

GTDを取り入れるにあたっては、まず下記の書籍を読みました。
はじめてのGTD ストレスフリーの整理術 デビッド・アレン (著), 田口 元 (監修) – Amazon.co.jp

下記のアプリケーションを使用して実行しています。
Omni Focus – act2.com
Omni Focus(iPhone) – iTunes Store

そこで、気がついたことがひとつ。
そもそもが、GTD自体がLifeHack的であるので、当たり前のことなのかもしれませんが、GTDのプロジェクトとコンテキストの概念が、ActionScriptの仕組みに似ているということです。

以下のような感じになるのではないでしょうか。

GTD ActionScript
プロジェクト クラス
アクション ステートメント
コンテキスト イベント

これらをGTDのステップに合わせてまとめてみます。

  1. 収集
    1. 実行したいタスクを書き出します。
    2. タスクをメソッドの実行やプロパティの変更などの単純なステートメントに細分化します。
  2. 処理
    1. ステートメントを分類し、関数にまとめます。
  3. 整理
    1. 関数をクラス化して実行しやすくします。
  4. レビュー
    1. クラスのインスタンスのメソッドを実行したり、プロパティを変更したりして、期待する結果が得られるかを検証します。
  5. 実行
    1. イベントハンドラ内にステートメントを定義します。
    2. イベントを関知して、イベントハンドラ内に定義されたステートメントを実行します。

ちょっと強引ですかね。

要は、慣れ親しんだAtionScriptのワークフローでGTDの概念をとらえることで、個人的にわかりやすくなり、かつ無駄がなくなるので、よいなーと思ったわけです。

Where Am I?

You are currently browsing the Flash category at msdf.