イナヅマTVログ

2008.10.28
11:58
author: taikiken
1件のコメント

iGoogleがスゴイことになってる

igoogle

igoogle

Flashなネタに限らないんだけど、ネットの情報はとても役に立ってます。
気になるブログのfeedをiGoogleに登録してチェックしてます。

ある日iGoogleのレイアウトが変わり著しく使いやすくなってた。
フィードも角丸ボックスに囲まれて見た目も向上している。
カテゴリはタブで上部に並んでいたのが左サイドに移動し、GmailもiGoogle内で送受信できるようになってる。
左サイドで選んだフィードはスクロールすることで過去のフィードも次々に表示され、とても便利。

でもまた元の上部タブ形式になったり、左サイドメニュー形式になったり理由が分からなかったがやっと意味が分かった。

google.comだと左サイドメニュー形式、google.co.jpだとタブ形式になるようだ。

ただgoogle.comにアクセスしてもgoogle.co.jpにリダイレクトされるのでURLに秘密があるのかと思ったら、
http://www.google.com/webhp?tab=mw
とクエリを付けるとリダイレクトされないことが分かった。

ブックマークを変更し快適iGoogle生活が始まった。

update
Googleに説明ページがあった。
Learn more about iGoogle’s new features

update
新機能のON/OFFはロケーションバーで下記のJavaScriptを実行させる。

ON :javascript:_dlsetp('v2=1');
OFF:javascript:_dlsetp('v2=0');

左サイドメニューにする時(ロケーションバー)
javascript:_dlsetp('v2=1'); +[ENTER]

2008.10.27
20:36
author: taikiken
1件のコメント

GoASAP, delay中のpasueとresumeが機能しないをFix(?)

GoASAPでdelay中のpauseとresumeが機能しない。
影響はHydroTween,HydroSequenceにも及ぶ。

org.goasap.utils.SequenceBaseに原因がある様子。

line:245
function resume(){}

がdelay中だと次のモーションがあってもfalseを返し処理できない。

どうもresume関数内の
line:250
if (_getCurrentStep().pause()==false) {}

の判定がダメっぽい。

delay中は_getCurrentStep().pause()がfalseを返すのが原因。

_getCurrentStep自体は処理を終えているのでfalseは正解な感じ。
次の処理(?)、delayに処理が移行しているのにモーションの処理状態しか判定していないために問題が発生しているのではないかと思う。
続きを読む →

2008.10.25
00:08
author: taikiken
0件のコメント

Flashで世界地図、amung.usサービスを使ったアクセスマップ

DIY Mapを使うと手軽にアクセスマップが作れたけど、緯度・経度の精度がもう一つなので別のアクセスマップを試した。

amung.usはReal-time stats for your website or blogしてくれるフリーのサービス。
数クリックでアクセスマップ用コードを生成するので、はり付けるだけですむ。

amung.usでアクセスデータも管理してくれるのでアクセス解析ツールとしても使える優れもの。
欠点は解析結果を誰もが見れること。


続きを読む →

2008.10.24
11:45
author: taikiken
0件のコメント

UNIQLOCK第4弾, やっぱりスゲー

UNIQLOCK第4弾が登場した。
相変わらず、キモチいいリズムで映像が切り替わっていく。

safariの構成ファイル一覧で、flvが読み込まれていくのをながめているとタイムラグが起きないように細心の注意が払われているのが見て取れる。
flvの仕上がりもすばらしく、拡大してもデジタルノイズが少ない。


続きを読む →

2008.10.22
22:20
author: taikiken
0件のコメント

Space Invaders again なつかしゲームで遊んでみた

昔懐かしいゲーム、スペースインベーダーがFlashで復活してました。
Widgetboxに作者Paul Neaveさんのコメントがあります。
制作は2006-08-25、だいぶ前です、知らなかった・・・
タグを張っても良いとのことなので、ココでも遊べます。

良くできてるなぁ。

画像をクリックでSpace Invadersが始まります。

2008.10.21
00:01
author: taikiken
0件のコメント

Hobnox – Audiotool, update + Flash Player 10 changed Sound API

Hobnox - Audiotool

Hobnox - Audiotool

Hobnox – Audiotoolがますますスゴイことになっている。
どこまで突き抜けていくか楽しみ。

Flash Player 10 requiredになっている。

制作チームのブログはかなりオモシロイ。
Kai-Philip さんのHobnox, next level…で開発裏話が・・・
また Andre Michelle さんのFP10 SoundAPI changesでFlash Player 10で突然変更されたSound APIについて書かれています。


続きを読む →

2008.10.20
09:38
author: taikiken
2件のコメント

HydroSequence, stop, pauseができないをFixする

HydroSequenceで、stop, pauseメソッドが期待通りに機能しないのは、HydroSequence側の不備が原因だった。
HydroSequenceクラス内のSequenceCAインスタンスsequenceを使ってstop, pause, resumeなどを実行しないといけないが、private指定のため使う方法がない。

HydroSequenceに関数を追加

public function get seq():SequenceCA{
	return sequence;
}

続きを読む →

2008.10.20
01:31
author: taikiken
0件のコメント

HydroSequence, SequenceCA, SequenceBaseでstop, pauseができない

HydroSequenceで、stop, pauseメソッドが期待通りに機能しない。

HydroSequenceの親クラスSequenceBaseでどうも処理されないみたい。
com.hydrotik.go. HydroSequence -> org.goasap.utils.SequenceCA -> org.goasap.utils.SequenceBase
Documentには
stop():Boolean
Stops all activity and dispatches a GoEvent.STOP event.

なのでstopはできるはず。

ステップモーションを配列で管理する SequenceBase._steps がいつの間にか空になる。
SequenceBase._state が PlayStates.STOPPED になる。
な現象まで確認。
多分一番の問題はSequenceBase._stepsが空になっていることではないかと思う。
そのために SequenceBase.playIndex も取得できない。

SequenceBase._stepsが空でもステップモーションを実行できるのはなぜ?
SequenceBase._state が PlayStates.STOPPEDでも全てのスッテプが終わるとちゃんとGoEvent.COMPLETEできるのはなぜ?

var seq: HydroSequence = new HydroSequence(...);
seq.start(); // motion start

seq.stop(); // not work
seq.pause(); // not work

使用方法を間違えているか、バグなのか。
名探偵コナンならどう推理する???

update
HydroSequence, stop, pauseができないをFixする
で解決。

2008.10.19
17:22
author: taikiken
0件のコメント

Flash Player 10, SWFUploadが使えない

WordPress, 現在バージョン(2.6.2)のメディアアップローダ FlashアプローダにはSWFUpload(2.0)が使われている。
Flash Player 10でセキュリティポリシーが変更になったためにFlash Player 10にアップグレードするとFlashアプローダが使えなくなる。

セキュリティポリシー変更詳細はakihiro kamijo氏のブログ Flash Player 10 におけるセキュリティ変更 3. ファイルアップロード/ダウンロードの呼び出し制限で確認できる。

Flash Player 10でのファイルアップロードはFlashのボタンに直接指示を出さなくてはならず、外部から(JavaScript経由)ではセキュリティポリシーに違反し動作しない。
「アップロード」ボタンはFlashファイルで作らなくてはいけない、に変更されている(多分)。

SWFUploadコミュニティでも議論され対応アルファ版がSVN(r777)でつい先日リリースされている。
r777版のSWFUploadだとFlash Player 10に対応できている、な様子。
Flash Player 10 – Continued
SWFUpload at Google Code
SVNのパス表記が間違っている、正しくは下記。
http://swfupload.googlecode.com/svn/swfupload/trunk/swfupload-read-only

WordPressのFlashアップローダをFlash Player 10でも使えるようにするにはSWFUploadのアップグレードとボタン(現在はinput type=”button”)表示ファイルのアップデートが必要になる。

SWFUpload Flash Player 10対応版がアルファ版な現状を考えると、WordPressコミュニティでのアップグレード対応を待つのが吉ではないかと思う。
ブラウザアップローダは使えることだし。

個別プロジェクトでのSWFUpload アルファ版アップグレードは検討する価値があるのではないかと考えます。

Flash Player 10でのセキュリティポリシー変更はセキュリティー側から考えると当然の変更だと思うけど、Flash Player 9は現状のまま?なのは整合性に欠ける対応にも思える。
Flash Player 9に対する対応をちゃんとしないとAdobeとFlash Playerはセキュリティに対する対応が甘い、と言われてしまう恐れがあるのでは、と思う。

ガンバレAdobe!

update
SWFUpload v2.2.0 Beta 1 Released
Flash Player 10対応ベータ版がリリースされてました。

update 2008-10-29
WordPress Flashアップローダの非公式なパッチが出ました。
Flash Player 10, SWFUpload Flashアップローダー WordPress用パッチ

update
Adobe デベロッパーセンター、既存コンテンツを含め「最新のUIA要件を満たしていることを確認する」ことを求める記事。
Flash Player 10のUIA(ユーザ主導型アクション)要件におけるユーザ操作の義務化について

update 2008-12-12
WordPress 2.7でFlash Player 10でのFlashアップローダの問題はFixされた。

2008.10.17
17:54
author: taikiken
2件のコメント

ActionScript 3, Singleton Pattern Classを作る

ActionScript 3ではconstructorがprivateを使えずpublicが必須条件になってしまった。
そのためActionScript 2で簡単に作成できたSingleton Pattern Class作成に少々ワザが必要になってしまっている。
既に多くの解決法が存在するようだけど、TextMateのAS3 Singleton Pattern templateをもとに考えてみた。

package {
 
public class Singleton extends Object {
 
	//--------------------------------------
	//  SINGLETON CONSTRUCTION
	//--------------------------------------
	private static var _instance:Singleton;
 
	public static function get instance():Singleton
	{
		if (_instance == null){
			_instance = new Singleton();
		}
		return _instance;
	}
 
 
	//--------------------------------------
	//  CONSTRUCTOR
	//--------------------------------------
	public function Singleton()
	{
		super();
		if( _instance != null ) throw new Error( "Error:Singleton already initialiszed." );
		if( _instance == null ) _instance = this;
	}
 
}
 
}

update
インスタンス作成。
var single:Singleton = new Singleton()
または
var single:Singleton = Singleton.instance;

インスタンス作成後
new Singleton();
すると
throw new Error
が実行され、コンパイルエラーになる。

インスタンスが必要なら
Singleton.instance;
でインスタンスを取得し使用する。

EventDispatcherを継承したEventをオブザーブするクラスを作ると便利、だと思う。