2008年9月アーカイブ

org.libspark.thread.threads.progression.ThreadCommand.asの
catchErrorを_catchErrorに書き換えて下さい。

以上です。

今はPRMLLoaderと格闘中。
SceneObject.extra無くなったのかあ。。。
追記:
nium先生からsceneInfo.dataへ移動になったとのご指摘が!!
確かにこれに書いてあります。。。
もっと良く目通さないと駄目ですね。。。
調べたつもりで見間違いしてたみたいです反省

前のエントリで前面を全面と書いてずっと気づかなかったので凹んでいます。

で、またまたProgressionなんですが。

CastButtonのメソッドに_onCastAddedとかが無いからコマンドでCastSpriteと同じような出したり引っ込めたりの処理が書けないよーという場合。

CastButton用のCastSpriteを作って、sceneIdとか使うプロパティをsetterで渡しちゃって下さい!!

ってこんな方法でいいのだろうか?

ちなみにボタンの見た目はCastButtonの方で書いてると仮定して。
CastButton用のCastSpriteの例
package myproject.buttons{
	import jp.progression.casts.*;
	import jp.progression.commands.*;
	import jp.progression.events.*;
	import jp.progression.loader.*;
	import jp.progression.*;
	import jp.progression.scenes.*;
	
	public class MyButtonSprite extends CastSprite {
		
		private var _button:MyCastButton;←これがCastButton
		
		public function MyButtonSprite( initObject:Object = null ) {
			super( initObject );
			
			_button = new MyCastButton();
		}
		
		public function set sceneId(_sceneId:SceneId):void {
			_button.sceneId = _sceneId;←SceneIdをセットしてる
		}
		
		protected override function _onCastAdded():void {
			alpha = 0;
			addCommand(
				new AddChild(this,_button),
				//Tweenerでじわっと出す。
				new DoTweener(this, {alpha:1, time:1 } )
			);
		}

		protected override function _onCastRemoved():void {
			addCommand(
				new RemoveChild(this,_button)
			);
		}
	}
}


でもこれだけじゃ汎用性は無いので、ボタン毎にこれ作らなくても良い様に改造の必要はありますね。ボタンの見た目とかの設定もsetterで出来るようにすると良いと思います。
ちなみに
addCommand(
    new AddChild(progression.container, myCastButton),
    new DoTweener(myCastButton, {alpha:1, time:1 } )
);

ってシーンに書いても同じくじわっと出るのですが、Tweener動作中にボタンを触るとボタンが動作しなくなっちゃうのと、綺麗に書きたかったのでこの方法取ってます。

とりあえず本当にこんな方法でいいのか不安だ。
こうやって使う事を想定されているとは思うんだけど。

技術ブログ書くのは初めてなので、色々模索しながらなんですが、今回もFlashのスーパーフレームワークProgressionの話です。

普通、ActionScript3で表示オブジェクトを配置する際はaddChildというのを使用します。

var _hoge:Sprite = new Sprite();
addChild(_hoge);

これで_hogeが表示リストという所に追加され、画面に表示される様になります。

基本的にaddChildした順番に表示リストに入っていくので、

addChild(_hoge1);
addChild(_hoge2);

とすると、_hoge2が_hoge1の前面に来る事になります。

でも、前面にタイトルを表示した後に背面に画像とかを表示させたいって場合があると思います。

AS2なら、attachMovieClipの引数で表示の順番を指定出来るので、AS3のaddChildAtを使って、

addChildAt(_hoge1,2);
addChildAt(_hoge2,1);

こうやりたくなるんですが、

RangeError: Error #2006: 指定したインデックスが境界外です。

って怒られます。

なので、少々工夫が必要になります。


それを踏まえて、Progressionのコマンド(詳しくはこちらを参照の事)とキャストオブジェクトを使う場合以下のような場面に遭遇するかと思います。

例えば大きなイメージが最初出てきて、上にテキストがかぶさって表示される

addCommand(
new AddChild(progression.container, _image),
new Wait(1000),
new AddChild(progression.container, _text)
);

というようなコマンドを書いたとします。

これを「テキスト最初にして」と言われた場合です。
最初どうするか悩んだのですが、ドキュメントを読んで解決しました。

addCommand(
new AddChildAt(progression.container, _text,2),
new Wait(1000),
new AddChildAt(progression.container, _image,1)
);

これで解決してしまいます。

Progressionすげー!!
ということでActionScript3が全然上達しなくなるかもしれませんが、お勧めです。

こっちを技術系ブログにするので、その他もろもろは別館で書こうと思います!!

そもそも、書く頻度がえらく少ないくせにブログ2つはどうなのか。。。

実は別館のブログエンジンはWordPressなんですが、ただ単にWordPress使ってみたかっただけです。
WordPressはiPhone用更新アプリがあるので写真の投稿が簡単なんです。
それが一番大きいかなあ。

デザインは今は借り物。
ずっと借り物かもしれないですが。。

9月4日の木曜日にアップルストア銀座でProgression3というFlash Actionscriptのフレームワークのイベントに参加して来ました。


前からProgressionには触っていた(ワークショップにも参加したりしてました)のですが、実はあまり本格的に使用はしていませんでした。


イベントは実事例の裏話や新機能の片鱗が見えたりして、とても良かったです。
椅子の座り心地も最高だったし。
内容の詳細は他にまとめている方がいるのでそちらを参照して下さい(←横着)。


そこで折角なので帰った足でダウンロードして、翌日までの案件を作って見る事にしました。


まず公式サイトでダウンロードして、インストール
私はクラスベースで作るので、最初の設定はここを見ながら。


最初、間違ったのは
progression2だとシーンを追加するのにaddChildを使用するのですが、それがaddSceneに変わってました。

あと、よく使うTweenerというライブラリが同梱されていて、そのTweenerのスペシャルプロパティが動作しなくてフォーラムに質問してしまったのですが、

Progression 2 では ver 1.26.62 を標準同梱していたものを Progression 3 では ver 1.31.71 を同梱するようにアップデートしています。

との事で、例えばカラーショーカット使用する場合は
import caurina.transitions.properties.ColorShortcuts;
ColorShortcuts.init();←これ良く忘れる。
をドキュメントクラスに書けばOKです。(初期設定のままならmyproject/Index.as)


他にもがらっと変わっていて、作り始めたのを一旦中断し、progression2.0との相違点を読んだりしながら、


シーンを作る→シーン内のオブジェクト(ページ、ボタン等)を作る→移動処理を書く
こんな感じで進めていきます。


するとHTMLサイトの様なフルフラッシュサイトの出来上がりーとなるわけです。


実際作った物は顧客検証用なのでお見せ出来ないのですが、フォーラムで対応してもらった難有りプロジェクトはここに置きました。(全く役立たずなプロジェクトですが、構造の参考くらいにはなるかと)


これからはフルフラッシュサイトでは必ずProgressonを使用する事になるでしょう。


大きな訴求ポイントとしては
・シーン毎に別のURLが発行される為、ブラウザの戻る、進むボタンの使用、シーンにいきなりアクセス、シーン毎の統計の取得が可能
・マウスホイールの使用可能
・構造はProgressionの方でやってくれるのでソースコードがすっきりする


特に統計の取得は結構言われていたので本当に助かります。
事例集に載れるようなサイトを作れる様がんばろうと思います。

今後、色々TIPS的なものを紹介出来たらと思います。
あと、テンプレート的なものとか作ってばら撒いたりしてみようかとも思っています。

全然まとまってない記事ですいません。。
ってこの記事誰が読むんだ?

ということで最近出たCDで気になるものを並べてみる

オール・ホープ・イズ・ゴーン~スペシャル・エディション~(DVD付き)
スリップノット
ROADRUNNER JAPAN(W)(M) (2008-08-20)
売り上げランキング: 49

まずスリップノット。最近じわじわ好きになってる。


ウルトラ・ビートダウン(期間限定)
ドラゴンフォース
ビクターエンタテインメント (2008-08-20)
売り上げランキング: 92

ドラゴンフォース!!相変わらず速い!


デス・マグネティック~ストロング・エディション
メタリカ
UNIVERSAL INTERNATIONAL(P)(M) (2008-09-12)
売り上げランキング: 33

これはまだ未発売だけどメタリカのニューアルバム!期待大!


Saudades de Rock
Saudades de Rock
posted with amazlet at 08.09.03
Extreme
Open E (2008-08-12)
売り上げランキング: 213

あのエクストリームが復活!試聴したけどいい意味で変わってなくてカッコイイよ。


Motorizer
Motorizer
posted with amazlet at 08.09.03
Moto"rhead
Steamhammer (2008-08-26)
売り上げランキング: 6834

モーターヘッドも新作!


ということでお金がいくらあっても足りませんね。

このアーカイブについて

このページには、2008年9月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年8月です。

次のアーカイブは2008年10月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。