Results tagged “Flash”

Oct 212008

progression検証 #5 フォルダ構成を変えてみる

Flash系のお話は休憩して、HTML系のお話。
progressionプロジェクトではサーバにアップするデータは"deploy"フォルダにまとめられています。構造は

index.html
corssdomain.xml
index.swf
preload.swf
└/contents
 ├/images/(デフォルトではFlash Playerのバナー)
 ├/objects/(version.swfのみ)
 ├/scripts/(swfAddress,swfobject,swfforcesize,progression.js)
 └/styles/(default.css)

という形になっています。
swf系は"swf"と言うディレクトリにまとめたい性格なので、変更してみます。

まず、"swf"フォルダを作り、その中に"index.swf","preloader.swf"を移動します。
次に"index.html"の中の"swf"参照先を変更します。

var so = new SWFObject( "preloader.swf", "external_flashcontent", "640", "480", "8" );
var so = new SWFObject( "swf/preloader.swf", "external_flashcontent", "640", "480", "8" );
に変更。 Flaファイル"index.fla"、"preloader.fla"の書き出し先を"/swf"以下に設定。 この時点で"preloader.fla"をパブリッシュするとプレビューでは"index.swf"をloadしてくれる。ただし、"index.html"からでは"index.swf"はLoadされない。これは"swf"の基点がhtmlベースになっているため。でオデは普通swfObjectに"so.addParam( "base", "." );"という一文を追加して、swf基点に書き換えてしまうので、とりあえずそれをやってみた結果は、 サーバ上:正常動作。 ローカル:"index.swf"が読み込まれない。 というちょっとアレ?な結果。

で、"Preloader.as"のコンストラクタに"useSWFBasePath = false;"という設定がある。
このuseSWFBasePath は

url プロパティの値に相対パスを使用した際に、SWF ファイルの設置されているフォルダを基準とするかどうかを取得または設定します。 ただし、読み込み処理が開始された以降は設定を変更することはできません。

ということらしい。"base"と同じような働きをするような感じ・・。
ということでこれを使ってみる。

Continue reading progression検証 #5 フォルダ構成を変えてみる.

Oct 202008

progression検証 #4 シーンに色々貼り付けてみる(jp.progression.casts)

続いてSceneに色々貼り付けるのに"jp.progression.casts"系を使用してみます。
まずは"AboutScene"。前回で作成した適当なMovieClip"div_scene1"とJPG画像をcast系に変更。bmは以前は"name"を指定していたものを"id"に変更。(一応nameもありますが、getInstanceByIdを検証するためidにしておく)

	mc1 = new div_scene1() as CastMovieClip;
	//bitmap		
	var bmd = new bm_face(0, 0);
	bm = new CastBitmap(bmd);
	bm.id = "face";
	bm.x = 100;
	bm.y = 200;

で、とりあえずコンパイルしてみると"AboutScene"を表示させるタイミングでエラーが発生。

TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。

さてこれは何が原因かいな?ということで、考えると"as CastMovieClip"はちと強引だったかしら?ということで、ライブラリの"div_scene1"のリンケージ設定で、基本クラスを"jp.progression.casts.CastMovieClip"に設定。 これでOK。

さて続いて"AboutScene"で生成されて、"ContactScene"で削除される画像のオブジェクトの処理をするために"ContactScene"の中を設定。"_onInit"の中で

var bm:CastBitmap = getInstanceById("face") as CastBitmap;
if (bm)
{
	progression.container.removeChild(bm);
}

としてコンパイル。 "AboutScne"を表示後、"ContactScene"を表示すると、きちんとbm(id=face)が削除される。 ここまではOK。

ただし、その後他のシーンに遷移してまた"ContactScene"に戻ったり、いきなり"ContactScene"に入ったり、用はCastBitmapオブジェクトが存在しない状態だとエラーが出る。

ArgumentError: Error #2025: 指定した DisplayObject は呼び出し元の子でなければなりません。

"if (bm)"では駄目っぽい。
ちと

var bm:CastBitmap = getInstanceById("face") as CastBitmap;

で何が戻ってきているのか?みてみると

[CastBitmap id="face" name="instance26" group="null"]

な感じ。addChildされているかどうか?は戻り値には関係ないっぽい。 ちなみに"getChildByName"だとremoveChildしたObjectは"null"で戻ってくる。 なので、addChildされているか否かを判定する必要がある・・。 さて・・・。ちょっとひとまずここで休憩。

Continue reading progression検証 #4 シーンに色々貼り付けてみる(jp.progression.casts).

Oct 202008

progression検証 #3 シーンに色々貼り付けてみる(標準)

ヨロヨロ進行中。
さて、シーンの中に普通にMovieClipやら、イメージやらを貼り付けてみる。
SceneObjectは[SceneObject Inheritance →EventIntegrator Inheritance →flash.events.EventDispatcher]という継承なので、DisplayObjectでは無い。ここは一応注意。じゃあDisplayObjectは具体的にシーンごとに分離されているのか?と言われると多分違う。恐らくドキュメントルートにSceneに関係なく配置されているのだと思うが、Sceneをまたいで存在するDisplayObjectにどーアクセスするのか?はまだ分からない。

少し話しがそれたので、元に戻す。
ガイドに書いてあるaddCommandの形でとりあえずMovieClipとBitmapDataを貼り付けてみる。
ライブラリでMovieClipを"div_scene1"、JPG画像を"bm_face"でクラス定義。
Sceneのコンストラクタで

	public var mc1:MovieClip;
	public var bm:Bitmap;
	public function AboutScene( name:String = null, initObject:Object = null ) 
	{
		super( name, initObject );
		page = new AboutPage();
		mc1 = new div_scene1() as MovieClip;
		var bmd = new bm_face(0, 0);
		bm = new Bitmap(bmd);
		bm.x = 100;
		bm.y = 200;
	}
こんな形で生成。 んでもって"_onInit"で
	addCommand(
		new AddChild( progression.container, mc1),
		new AddChild( progression.container, bm),
		new AddChild( progression.container, page)
		);
こんな感じでキャスト登録。 同様に"_onGoto"できちんと"RemoveChild"。
	addCommand(
		new RemoveChild(progression.container, page),
		new RemoveChild(progression.container, bm),
		new RemoveChild(progression.container, mc1)
	);
で、OK。 本当は用意されているjp.progression.casts Package - Progression 3.0 - API Referenceこの辺のキャスト系を使わないと、あまりAddCommandの中に入れている意味は無いのだと思うけど、まず整理の為に標準のやり方でやってみる。

次にaddCommandの中で定義しないで、直接貼ってみる。

Continue reading progression検証 #3 シーンに色々貼り付けてみる(標準).

Oct 202008

progression検証 #2 シーンの階層化

続き、ちと横道にそれて子供のシーン、孫のシーンを作ってみる。
Index.asの_onInitの中で定義された"contact"シーンの子供、孫を作ってみる。

//子供シーン contact_1
var contact_1:TempScene = new TempScene("contact_1");
contact.addScene(contact_1);
// contact1 Child button を作成する
var contact_1_bt:TempButton = new TempButton();
contact_1_bt.x = 200;
contact_1_bt.y = 150;
contact_1_bt.sceneId = contact_1.sceneId;
addChild( contact_1_bt );
//孫シーン contact_1_1
var contact_1_1:TempScene = new TempScene("contact_1_1");
contact_1.addScene(contact_1_1);
// contact1 Child button を作成する
var contact_1_1_bt:TempButton = new TempButton();
contact_1_1_bt.x = 200;
contact_1_1_bt.y = 180;
contact_1_1_bt.sceneId = contact_1_1.sceneId;
addChild( contact_1_1_bt );
こんな感じ。 まぁなんて簡単。ステキング。

ただ開発の際に子供コンテンツが外部SWFだとして、それが複数の子供を持つ場合等、制作過程で子供コンテンツで動作確認を取りながら開発とか作業分担は難しいのかなぁ?
いや、そもそもSceneに対して外部コンテンツを定義できるのか?が良く分かってないのだけど・・・。(Sceneの中で外部SWFを読み込む感じかしら?) 例えばその場合その外部SWFの中で再びprogressionを定義して階層化したりしたらどうなるのだろうか?(Staticでは無いので一応可能?)
なんか知りたいことが山のように出てきて中々進めない・・。

まぁ一つ一つ検証してみよう。

Oct 202008

progression検証 #1

Ver.2で途中まで手を付けたままで、なかなか先に進めずにいたprogression。
改めてVer.3で最初からやり直してみる。
同じタイミングでtrick7さんもスタートしている。trick7.com blog: やっと Progression3 をさわりはじめたメモ 多分こちらの方がヨタヨタ展開の予感。

まずprogression.jp | ドキュメント | クラス制作ガイドで一通り実装。色々基本的な項目がパッケージ化されていて便利。元のAS3を忘れそうで恐ろしいw

この時点での感想・疑問点としては

  1. シーンが遷移中にボタンが自動的にKILLされている。これは便利な面もあれば不便な面もある。任意で解除できるのかは追って調べる。(ただ解除したらコマンド系非同期処理になにか破綻が出てくるかもしれない)
  2. flashVarsにJSONを良く使用するのでindex.htmlにJSONを組み込みたいのだけど、テンプレートをどう修正すれば良いのか良く分からない(SWCの中?)。これも追って調べる。
  3. データ構造がまだきちんと分かっていない。Indexの中のnew Progressionの第3引数でrootClass(ガイドではindexScene)を定義しているが、ここをnullにした場合どういう状態になるのか?(暗黙的にindex?)
  4. IndexSceneの中で他のシーン(About,Contact)を生成している理由は?情報構造的にindexSceneの子供という考え方?
  5. Sceneに複数のcastを割り振りできなくなった?(多分できるけど)

勉強会に行きたいのだけど、いつも都合が合わず欠席している。
次回こそなんとしても行きたい。

Continue reading progression検証 #1.

Sep 242008

3種類の円文字

Flashだけの話ではないのだけど、円マーク(\)の入力について。
Windows環境においての話です。(Macはどうなってるか分からない)
もしかしたら自分の環境固有の問題かも知れないけど、一応メモ。
ブラウザでも正直見えているのか不明w

例えばMSゴシックで"\10,000"と入力すると問題なく円マークとして表示されるが、フォントフェイスを新ゴに変えるとバックスラッシュになる。またHelvetica等の英字フォントに変えても同様になる。
080924a.jpg

次に全角の円マーク(¥)にしてみる。
080924b.jpg
新ゴは当然大丈夫。そしてHelveticaが文字化けするのも当然。

で、キャラクターマップを見てみると、通常の英字フォントにも半角の円マークは存在する。
しかしキーボードで入力した半角円マークはその文字にマッピングされない。
で、キャラクターマップから入力してみる。(Unicode:0x005c)
080924c.jpg
全フォントOKになる。しかしMS Pゴシックでの半角と今回の形が微妙に違う。どうも半角円マークの字体を2種類持っているっぽい。

なしてこういう状態になっているのか良く分からないが、入力に関してはIMEの設定の問題かも知れない。

Continue reading 3種類の円文字.

Sep 052008

Flashゾンビ対策?

久しぶりにFlashを触っていたのですが、クラスファイルを変更したものがパブリッシュの際に反映されず困っていました。FlashDevelopをバージョンアップさせたからかなぁ?とかFlashゾンビ対策|_level0.CUPPYとか色々検証してみたのですが、どれも駄目。

で、結局コントローラーに相当するクラスの名前を"Main"にしていたのを"Ctrl"に変更したらうまく反映されるようになりました。"Main"ってそんなに特殊な言葉だったっけな?

全然AS3とかの話じゃないですが、とりあえずエントリー。

Aug 082008

本当のFlash

Jun 222008

FLASH OOP for ActionScript 3.0

FLASH OOP for ActionScript 3.0
7月頭に発売開始だそうです。
ちなみに前の奴買っていますが、ザラザラって読んで終了してしまった・・・。
今回購入したら完読したいと思います。

今回の帯は誰のコメントがつくのだろうか?

Jun 042008

asoファイルがクリアされない今日この頃

080604.jpg
最近controllerのasoがクリアされない。「制御/ASOファイルを削除」しても駄目。Flashを再起動しないと更新されない。

実際更新されているかどうか?はcontrollerのtraceとかを書き換えて出力をチェックしないと良く分からない。これやらないと全然違うバグだと勘違いして延々無意味な修正作業の無限ループに入ってしまう。

なんだろなー、クラス名がどっかで重複しているのだろうか?
良く分からないが、気持ち悪い。

Jun 012008

んんんん?

Classを割り当てたMovieClipをルートタイムランの1フレーム目に置くと、そのコンストラクタ内で別のデータ系クラスの初期化が可能なのに、2フレーム目に置くと初期化が出来なくなる。
なにこれ?こんなの初めて。

いわゆる初めてのひと夏の体験みたいな・・・そんな甘酸っぱいメモリーリーク。
いや、別にメモリーリークではない。

May 162008

NetConnection.call()

FMS 2の話ですが、毎度毎度忘れてしまうんでメモ。
特定のクライアントのメソッドを実行する場合

newClient.call("clientMethod",getterObject,[param1,pram2,...]);

clientMethod : 呼び出すclient先のメソッド名(string) getterObject : 戻り値を受け取るObject(onResult:成功した場合 / onStatus:失敗の場合) pram1.. : clientMethodに引き渡す引数

SharedObjectの時にはsendなので混同しないように!

May 162008

flashDevelop Ver3 Beta.7

バージョンアップしたら設定が全部吹っ飛んだ・・・汗
ちなみにフォントの設定がTools/Program settings/Mainから出来るようになって喜んだのだけど、Console FontとDefault Fontだけということで、なんかエディタ部分のフォントは従来どおり"C:\Documents and Settings\User\Local Settings\Application Data\FlashDevelop\Settings\ScintillaNET.xml"で行うかんじらしい。まぁ良いけど。

何が具体的に変わったのかまだ良く分からないですが、Global Classパスを色々設定している人は先にそこらへんメモしてからバージョンアップしてください。(一応プロジェクトレベルで設定されているクラスパスはそのまま継承されています)

May 152008

Flash Player 10 beta

Adobe Labs - Flash Player 10
akihiro kamijo: Flash Player 10 beta 公開

でた。
3D Effects,Enhanced Drawing API。これで既存の3Dライブラリはより高速化するのかしら?(かなり書き直しになるのかな?)
個人的にはAdvanced Text Layoutでデバイスにアンチエイリアスをかけれる部分がうれしかったりするのだけど、これMACだとどーなるのだろうか??OSでやるのとPlayerでやるのとどっちが優先される?

May 132008

おぉぉ・・・

Adobe - Director 11: 機能
もうこのまま消えていくのか?と勝手に思っておりました。スイマセン。

XBOXとかで使用されている物理エンジン、AGEIA PhysX(NVIDIA PhysX)を採用とのことで、かなり高速になりそう。(ボード積んでいない場合はDirectXなの?)WEB上でのゲームとかがすごいことになるのかな??

良く分からないのだけど、FlashはDirectXを使ったりとかできるの?

ref:AGEIA PhysXブースレポート

May 082008

Open Screen Project

Adobe - Open Screen Project
やっと来た。
MSでもAPPLEでもなく、Adobeというのがリアルに感じるな。

日本企業の協賛が少ないのが非常に気になる。

May 052008

むむむー・・・

こういうXMLデータのプリセットっつー概念は今までやってなかったな・・・。
どすればきれいにまとまるのか良く分からなくなってきた。
preset
property
model
この3つをどう連携させるか?ってことなんだけど、どーもpropertyとpresetが混合してしまう。
気持ち悪い。

May 022008

flash.accessibility.updateProperties()

If you modify the accessibility properties for multiple objects, only one call to the Accessibility.updateProperties() method is necessary; multiple calls can result in reduced performance and erroneous screen reader output.

この仕様どうなんだろうか? つまり時間によって内容が変化していくようなインターフェイスの場合、updateProperties()した後のAccessibilityPropertiesは反映されないということなのだろうか?

うーん・・・。
なんか微妙な気がする。

May 012008

むう

navigateToURLでmethod = URLRequestMethod.POSTにしても何故かGET形式でサーバに送信されるのは何故か?URLLoaderではきちんとPOSTされるのに・・。

Apr 282008

as3でExpress Install

swfObjectをいつも使っているので、あまり気にしてなかったのですが、AS3内で使用するExpress Installって存在しているんでしたっけ??

Adobe - デベロッパーセンター : Express Install 適用ガイド
Adobe - デベロッパーセンター : SWFObjectを使用したJavaScript Flash Playerの検出と埋め込み

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

Search and Archives

Tags