Results tagged “Flash”

Nov 162008

Loaderの読み込み強制終了 Loader.close編

外部イメージのローディング途中で他の処理やシーンに遷移したい場合等、ローディングを任意に中止する部分で現在はまり中ということで検証を時系列的にメモ。

"Loader"クラスには"close"と"unload"という似たようなメソッドが2つほどある。

closeは

Loader インスタンスに対して現在進行中の load() メソッドの処理をキャンセルします。

一方unloadは

load() メソッドを使用してロードされた、この Loader オブジェクトの子を削除します。関連したLoaderInfo オブジェクトの property は null にリセットされます。他のオブジェクトが参照している可能性があるため、子は必ずしも破棄されるとは限りません。ただし、Loader オブジェクトの子ではなくなります。

と定義されている。

とりあえず"close"から検証してみる。
CODE:1

_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.OPEN, function() { trace("ロード開始");} );
_loader.contentLoaderInfo.addEventListener(Event.UNLOAD, function(){trace("アンロードされました")});
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _loaded_Loader);
・・・
//キャンセルボタン(※CastButtonを使用)
_bt_cancel.onCastMouseDown = function(){ _loader.close(); }
・・・
private function _loaded_Loader(e:Event):void
{
	trace("ロード完了");
	addChildAt(_loader,0);
}

既にこの時点でCLOSEイベントを取得する口が見つからない(汗 EVENT.CLOSEは"Socket","XMLSocket"だけにしか用意されていないイベント。つまり発動したとしても結果を拾えないという謎な感じになっている。

Continue reading Loaderの読み込み強制終了 Loader.close編.

Nov 122008

progression検証 #17 ページタイトルの設定

ProgressionはSWFAddressを内包しており、URLハッシュの制御が可能です。
また同様にSWFAddressの持っているページタイトルの制御もSceneObjectレベルで可能です。
(ただしブラウザ同期機能を有効にしておく必要があります)

やり方は簡単でSceneObjectの中で"title"を設定してやるだけで、そのシーンに移動した際にページタイトルが変更されます。
何も設定しない場合には各シーンのsceneIdが"|"区切りで表示されます。
インデックスシーンにのみ設定を行った場合には、そのタイトルの後ろにsceneIdが"|"区切りで表示されます。

注目すべき部分としてはシーンイベントの発生のタイミングではなく、"title"の変更を監視していて、titleの変更に対して随時ページタイトルを更新するという点です。

つまり"SceneObject"の中で複数のページタイトルを持たせることも可能と言うことになります。
(ただURLは別の話になるので、その行為にどれほどの意味があるのか微妙ですけど)
こんな感じ(※CastSprite等の中から)

getSceneById("hogehoge").title="ほげほげ";
titleのベース部分と、シーンタイトルを別で制御できたりするのか?はちょっとまだ良く分からないですが、まぁシーン設計の際にキチンとsceneIdが定義できていればtitleを設定しなくても問題ないかも知れません。(ただし日本語のタイトルはsceneIdに日本語を使ったことが無いので分からないですが・・・)

なんにしてもやりたいことの細かい部分まで行き届いていて、感心しきりです。

Nov 122008

Progression 3.0.7リリース

一日遅れですが
blog.progression.jp» ブログアーカイブ » [お知らせ] 緊急アップデートのお願い
だそうです。なにやらセキュリティに関する部分のアップデートということです。

このアップデートで修正される問題は、3.0.0 Beta 1 から 3.0.6 までの全てのバージョンが対象となっております。
過去、該当バージョンにて制作されたコンテンツに関しても、お手数ですがプロジェクトパネルの自動アップデート機能をご利用いただき、最新の状態となるように修正作業をお願い致します。

これはちょっと具体的な修正箇所を公開は難しそうです。
詳細は個別にメールでと言うことですが、これは大変だ・・・・汗

GNU系プロジェクトこういうときに本来の持ち味である公開性が使えなくって個人に負荷が集中してしまうのが辛いところ。やっぱなんかビジネスとして展開しないと作者さんが疲労してしまいそうで心配です。

AdobeCS4のアップデートで20万近くかかりますが、心情的にはProgressionにも20万ぐらい払いたい気持ちです。

ということでアップデートしてみます。

Nov 092008

progression検証 #16 CastDocumentでの先読み処理におけるProgression.sync=trueの設定

Progressionの便利機能の一つに

sync : Boolean
ブラウザ上でコンテンツを実行している場合に、URL と Progression インスタンスのシーンを同期させるかどうかを取得または設定します。 同一コンテンツ上で有効化できる Progression インスタンスは 1 つのみであり、複数に対して有効化を試みた場合、最後に有効化された Progression インスタンス以外の sync プロパティは自動的に false に設定されます。

があるわけですが、"Index(CastDocument)"クラス内でコマンドを使って外部ファイルのローディング処理等をしつつ、"sync=true"にしていると、コマンド処理待ちをすっ飛ばして自動的にfirstSceneIdシーンに遷移してしまいます。(prog.goto( prog.firstSceneId );"を記述していない場合、プレビュー環境では遷移しないのですがブラウザ上でみると遷移しちゃう)

各シーン毎に必要なものを読み込む様な形であれば問題ないのですが、先読みデータ前提で各シーンの設定していると(例えば外部イメージをbitmapdataとして保持して、そこから呼び出したり)、読み込み前のためにnullになってしまってエラーが出てきます。

でわどするか?っつーと"prog.sync = false;"の設定をコマンドの中にいれて設定を同期させてしまいます。つまり先読み処理が終わった後、且つ最初のシーンへの移動の間で設定する。こんな感じ
CODE-1

_list = new SerialList();
_list.addCommand(
・・・
  //先読み処理終了
  ,function() { prog.sync = true; }
  ,new Goto(prog.firstSceneId)
);
_list.execute();
これで多分大丈夫。 多分・・。

Nov 082008

Progressionのテンプレートファイル for FlashDevelop

Nov 072008

Progression日記:CastSpriteをネストさせすぎてダバダバ

このエントリーは日記です。

いやー調子にのってCastSpriteを激しく入れ子にしたものを作って、SceneObjectの"_onUnload"から"RemoveChild"で引っ掛けて、その子、孫、ひ孫へと"_onCastRemoved"で連鎖させていったらコマンドの発動順番が訳分からなくなった。これはあんまネストさせないで、深度を同じとかにして管理しないと把握できないなぁ・・・。

なんかよく分からないのは、

ICastObject オブジェクトが RemoveChild コマンド、または RemoveAllChild コマンド経由でディスプレイリストから削除された場合に送出されます。 このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。

してないCastSpriteも"_onCastRemoved"を呼び出されていること・・・。
親のCastSpriteがremoveChildされたら自動的にRemoveAllChildrenが実行されたりするのだろうか?

まぁちょっと今の構造はややこしすぎて自分でも分からないのでもう一度組みなおして整理する。

Nov 062008

Progression 3.0.6 をリリース

progression.jp | 開発 | リリースノート | 3.0.6

新しいバージョンがリリースされました。

で、アップデートしてみました。
自分の環境は
・Flash 用標準パッケージ(日本語版)
・FlashDevelop
という感じなので、mxpを更新インストールして、Flashを起動。
Progressionプロジェクトパネルの「アップデート」ボタンをクリックして、更新したいプロジェクトフォルダを選択してアップデート。

自動的にプロジェクトフォルダの中に含まれる(src以下なのか?はちょっと分からなかったですが)FLAファイルが自動的に開かれてアップデートされていきます。で、更新完了。

で、コンパイルしてみると、エラーが出てしまった。

ちとこれまだどこに原因があるのか分かっていませんけど、分かったら追記しておきます。

Continue reading Progression 3.0.6 をリリース.

Nov 052008

progression検証 #15 CastImageLoaderをコマンドで監視編

なんだかまさに付箋状態になりつつある"Progression3"カテゴリ・・・。
ということでもう一つ追加。

外部からイメージを読み込むのに使うクラス"CastImageLoader"。これは"flash.display.Loader"のサブクラスなので"LoadChild(←flash.events.EventDispatcher)"と違ってコマンドで処理待ちしてくれない。
これをコマンドで監視できるようにするのはどーすればよいか?というお話。
"Command"クラスを継承して"CastEvent.CAST_LOAD_COMPLETE"でイベントを排出したり、"executeComplete();"したりすればなんかいけそうな気もするが、ちょっとそれは冗長な気がする。

"Func"クラスを用いて、ごにょごにょしたりしてコマンド監視下に置けないかしら?
"after"メソッドの中でゴニャゴニャしてもいけそうな気もするが、今頭がまわらないので忘れないようにメモ。

Continue reading progression検証 #15 CastImageLoaderをコマンドで監視編.

Nov 042008

progression検証 #14 CastButton編

例えば"/index/food"というシーンがあって、その子供に"/index/food/curry"、"/index/aho/rice"というシーンがあるとする。

で、"/index/food"のシーンではデフォルトで自動的に"/index/food/curry"を表示するようなつくりにする場合。つまりfoodシーン自体は要素を持たない形而上的な存在で、任意(もしくはランダム)で子供シーンを表示する。という場合にSceneID="/index/food"が設定されたCastButtonを動作させないようにすることはできるか?

ということを、元々そういうプロパティがあるのか?も含めて検証してみる。
ちなみにCastButtonやSceneObject等が持っている"group"はそういう用途に使ってもよいのか?まだ良く分かっていない。(実際何に使うべきプロパティなのかイマイチ理解できてない、多分一括消去とかだとは思うんだけど・・違うかな?)

まぁ"progression.current"とかを使えば力業でできなくも無い。

Nov 042008

progression検証 #13Background編

ProgressionのBackgroundクラスにどう取り扱ってよいのか迷い中。
Progressionクラスを初期化すると自動的に追加されるインスタンスなのだけど、"container"と違って、progressionに参照プロパティが無い。で、

Progression インスタンスに関連付けられた汎用的に使用可能な表示オブジェクトを提供します。

と言うことで、ライブラリに実際に"jp.progression.core.casts.Background"クラスでMovieClipオブジェクトを関連付けるような使い方になる。

一応Background - Progression 3.0 - API Referenceな感じで色々メソッドとかあるんだけど、実際これどこからアクセスしてよいのか見当がつかない。(progression.stageにもprogression.rootにもなさそうだけど、そもそもnameもidも定義されているのか?がよく分からない・・)

何か根本的なことを見落としているような気もするのだが・・・。なんだろう??

Continue reading progression検証 #13Background編.

Nov 032008

progression検証 #12複数外部データの読み込み管理編 [

複数の外部ファイルを先読みしてからコンテンツをスタートさせたい場合、Progression3でどうするか?の検証。複数外部ファイルの読み込みのクラスは幾つかあるのですが、(muraken/GroupLoader - Spark projectbulk-loader - Google Codemasapi - Google Codequeueloader-as3 - Google Code)、今回はProgressionのCommandと連動して処理するような形のものを作ってみようかと・・・。

で、まずCommandクラス部分から解析のところで悪戦苦闘中・・・。
はぅ・・・涙
今日中に何とかしたいと思います。
上手くいったら追記します(汗

Nov 012008

progression検証 #11外部データの読み込み、その他の処理編

これまでで、外部XML、画像の読み込みができるようになりました。今回は一旦立ち止り、"LoadURL","CastImageLoader"等のエラー処理について検証。

まずxmlから。以前に書いたものを整理すると
#CODE-1

var config:LoadURL = new LoadURL(new URLRequest("../contents/data/config.xml"));
config.after(function():void
	{
		trace("設定読み込み完了");
		new Conf(config.data);
	}
)
var list:SerialList = new SerialList();
list.addCommand(
	,config
	,new Goto(prog.firstSceneId)
);
list.execute();
これに、基本的な各種イベント監視の追加と、"LoadURL.error"を追加。 #CODE-2
config.addEventListener(Event.COMPLETE, function():void { trace("Event.COMPLETE!!") } );
config.addEventListener(IOErrorEvent.IO_ERROR, function():void { trace("IOErrorEvent.IO_ERROR!!") } );
config.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function():void { trace("SecurityErrorEvent.SECURITY_ERROR!!") } );
config.error(function():void
	{
		trace("config.error");
	}
)
この状態で"URLRequest"のURL値を存在しないファイルにすると、以下のエラーが出ます。
Continue reading progression検証 #11外部データの読み込み、その他の処理編.

Oct 312008

progression検証 #10 外部データ(jpg)の読み込みIndex(CastDocument)編

progression検証 #9 外部データ(xml)の読み込みIndex(CastDocument)編の続き。Index(CastDocument)内での初期化作業で外部xmlの読み込みまではできるようになりました。次に画像系の先読みを初期化で行ってみようと思います。(例えば背景イメージの先読み等)

先のエントリーの最後に「CastImageLoaderとLoadChildのどちらを使うか?」を悩んでいましたが、まだ明確にどちらが良いのか?は分かっていませんが、とりあえず "CastImageLoader"を使って進んでいきます。先エントリのIndex._onInitの中に以下のように追記していきます。
#CODE-1

//背景の読み込み( CastImageLoader)
var _bgLoader:CastImageLoader = new CastImageLoader();
_bgLoader.addEventListener(CastEvent.CAST_LOAD_COMPLETE, function():void
	{
		//画像貼り付け
		prog.container.addChild(_bgLoader);
		_bgLoader.addCommand(
			new Trace("画像の読み込み完了")
			// シーン移動
			,new Goto(prog.firstSceneId)
		)
	}
)
var list:SerialList = new SerialList();
list.addCommand(
	// 設定ファイルの読み込み
	,config
	// 背景画像の読み込み
	,function():void {
		_bgLoader.load(new URLRequest(Conf.getAlias("bg").url));
	}
	,new Trace("#step-1")
);
list.execute();
という感じになりました。 "_bgLoader.load"の実行がこの形が適切なのか分かりませんけど、この命令の後の"new Trace("#step-1")"は"bgLoader"の読み込みを待たずに発動してしまうので、シーン移動のコマンド"new Goto(prog.firstSceneId)"を"bgLoader"の"CastEvent.CAST_LOAD_COMPLETE"イベントの中に入れています。今は他の処理のことも考えてaddCommandの中に入れていますが、いれずに"prog.goto(prog.firstSceneId);"でもOK。

複数ファイルを読み込んだりする場合は、それらを管理するクラスを作って処理した方が良さそうですが、とりあえずこんな感じで・・・・。あっているのだろうか??

あとは"bgLoader"を貼り付けている先
"prog.container.addChild(_bgLoader);"
にしているのだけど、本当は"jp.progression.core.casts.Background"に貼り付けたいのだが、アクセス方法が良く分からない・・・。これどこにあるんだろう?

Progression インスタンスに関連付けられた汎用的に使用可能な表示オブジェクトを提供します。

と書かれているが、"Container"は"progression.container"があるけど・・・。

Continue reading progression検証 #10 外部データ(jpg)の読み込みIndex(CastDocument)編.

Oct 312008

progression検証 #9 外部データ(xml)の読み込みIndex(CastDocument)編

前回(progression検証 #8 外部データをpreloaderで読み込むのをやめて挫折中)の挫折から、みなさまからアドバイス頂いて、Index(CastDocument)で読み込んでみます。

"CastDocument"クラスには一応"addCommand"があるのですがうまく動かないので(理由は良く分からない)、むらけんさんに教えてもらった形で、コマンドリストクラス"SerialList"で設定してみます。


オデは外部リンク、外部ファイル等のURL等をconfig.xmlの中で管理しているので、それを初期化の中で読み込むようにしてみます。("Conf"と言うのは設定情報管理を行うオリジナルクラスです。)"Index"クラスの"_onInit"の中に以下のように書いてみます。
#code-1

var config:LoadURL = new LoadURL(new URLRequest("../contents/data/config.xml"));
config.after(function():void
	{
		trace("設定読み込み完了");
		new Conf(config.data);
	}
)
var list:SerialList = new SerialList();
list.addCommand(
	,config
	,new Goto(prog.firstSceneId)
);
list.execute();

動作としては"config.xml"の読み込みが完了してから最初のシーンに移動するという感じです。これでIndexクラスでの初期化作業も出来そうです。(実際にはLoadURLのエラー処理、loading状況の情報取得等色々入れないといけないですが・・) ありがとうございました!

ADJ:2008/11/01 1:14
すいません、上記の部分環境を家に変えて実行したら"new Conf(this.data);"の部分で

[ERROR] コマンドで ReferenceError エラーが発生。
[ERROR] コマンドで ReferenceError エラーが発生。

になりました。Commandに入れていたのか記憶が定かじゃないですが、"new Conf(config.data);"が正しい記述になります。(多分w)
ということで上記コード修正しておきました。

Continue reading progression検証 #9 外部データ(xml)の読み込みIndex(CastDocument)編.

Oct 302008

progression検証 #8 外部データをpreloaderで読み込むのをやめて挫折中

前エントリー(apeirophobia: progression検証 #7 外部データをpreloaderで読み込んでみる(XML編))で、Preloaderで諸々初期設定等の外部ファイルを読み込んでまとめてloading処理してしまおうと考えていたのですが、実装的(標準ではindex.swfのloadingのみに対応)、制作フロー(indexをオーサリングしているとき、外部データが無いのでpreloadからコンパイルして動作確認を取らないといけない)的にも、あまり効率的ではないと判断して、index.swfの中で初期化フローを持つ方向にシフトしようと思います。

Continue reading progression検証 #8 外部データをpreloaderで読み込むのをやめて挫折中.

Oct 302008

progression検証 #7 外部データをpreloaderで読み込んでみる(XML編)

エラー処理などは放り出して、先に進みます。前回のエントリーではIndexSceneで外部XMLを読み込みましたが、最初のLoading時に設定系外部XMLやらを読み込む事例は多いかと思いますので、次はPreloaderで外部ファイルを読み込んで、SceneObject等からそのデータにアクセスするのはどーすればよいのか試してみます。

まず前検証でIndexSceneに設定した外部XMLの読み込みをPreloaderに移植します。
#code-1

		private var _loadURL:LoadURL;
		public var myXML:XML;
		protected override function _onCastLoadStart():void {
			_loadURL = new LoadURL(new URLRequest("contents/data/products.xml"));
			addCommand(
				new Trace("Preloader commands")
				,this._loadURL.after(parseXML)
				,new Trace("このコマンドはデータ読込み後に実行されます?")
			);
		}
		private function parseXML():void {
			trace("parseData");
			myXML = new XML(_loadURL.data);
			trace(myXML);
		}

こんな感じでOK。 実行すると外部XMLの読み込みが終わってからIndexが展開されます。ステキ。


Continue reading progression検証 #7 外部データをpreloaderで読み込んでみる(XML編).

Oct 292008

progression検証 #6 外部データを読み込んでみる(XML編)

この問題(apeirophobia: Progressionの中でPV3D)がまだクリアになっていないのだけど、ちょっと先に進みます。今回は外部データの読み込みを試してみます。

一般的に外部データとして想定されるものはxml,json,jpg,swf等があります。as3になってバイナリも読み込めるのですがそれはまた別の話で。

最初に至極まっとうにXMLでやってみます。IndexScene.asの_onLoadの中に組み込んでみます。
#code-1

private var _loadURL:LoadURL;
~
protected override function _onLoad():void {
	_loadURL = new LoadURL(new URLRequest("test.xml"));
	_loadURL.after(parseXML);
	_loadURL.execute();
}
private function parseXML():void {
	var myXML:XML = new XML(_loadURL.data);
	trace(myXML);
}

こんな感じ。 次にcommandを使ってみる。

Continue reading progression検証 #6 外部データを読み込んでみる(XML編).

Oct 282008

Aviary

Aviary - Home
FlashでPhotoshopとか作っている。前に同じようなのをどこかで見たけど、これだったっけな?Peacockっつーのがちょっとステキ過ぎる。Photoshopにもこの機能が欲しいな・・・。

で、問題はこれは将来にどう展開していくのか?がなんとも難しい。
旅行先とかで作業する分には便利そうである。

via.fladdict

Oct 242008

progression検証 #番外 Progressionの中でPV3D

を今やっていたりするのだけど、何故だかオーサリングプレビューではpreloader経由でも表示されるのに、HTML経由だと表示されない。一応index.swfは読み込まれているのだけど、PV3D部分が表示されない。HTMLからindex.swfを直接読むようにしても表示されない。
ただProgressionを使わず直接PV3Dを展開すると表示される。
上手くSceneが制御できてないのかしら??
なんかものすごく初歩的なミスのような気がするが、頭が回らない。

ムフー。
寝る。


Oct 222008

久々PV3D

久しぶりにPV3D触っていますが、Greate White αのときからかなり変わっていて四苦八苦。いきなり"Scene3D"にコンテナ入れてた引数がなくなっていてびびった。完全下位互換無し?昔のやつとかどうすんのよ?修正大変ジャンか。(ってかもうプロジェクト毎にライブラリを保存しておくしかないんだろうけど・・・)

こんなに激しい変化は老人の脳味噌にはハードです。

ちなみにここのドキュメントはもう古すぎて当てにならない。SVNの中に入っているドキュメントが多分一番新しいかと・・。

added 2008/10/22 16:31
最新ドキュメントここにありました。(Papervision 3D 2.0 Beta rev.752)

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  

Search and Archives

Tags