‘小ネタ’ カテゴリーのアーカイブ

[小ネタ] Progression 3 Func コマンドの動的な設定変更

2008年9月18日 木曜日

Progression 3 では、SerialList や ParallelList などに関数をそのまま addCommand() すると、自動的に Func コマンドに変換する機能があります。

この機能はとても便利ですが、その反面、登録されるまで Func コマンドのインスタンスが取得できないので、コマンドに対して何か設定変更したい場合には、事前に Func コマンドを作成する必要があります。

しかし、よく使う機能でプロパティ変更のためにわざわざ Func インスタンスを作成するのも手間ですので、一部のプロパティについては実行中の動的な設定が可能となっています。

コマンド実行中にタイムアウトを変更
以下のように設定することで、実行中にタイムアウトを無効化することが可能です。

addCommand(
  function():void {
    this.timeOut = 0;
  }
);


コマンド実行中にイベント待ち
以下のように設定することで、動的なイベント待ちが設定可能です。
addCommand(
  function():void {
    this.dispatcher = dispatcher;
    this.eventType = Event.COMPLETE;
  }
);

[小ネタ] シーンエディターの便利な使い方

2008年9月12日 金曜日

Progression 3 からの新機能であるシーンエディターですが、細かい便利な使い方が実装されています。

  • シーンアイコンをダブルクリックで子シーン作成。
  • シーンタイトルを空欄にすると、自動的にデフォルト値を適用。
  • シーン名、キャストクラスを空欄にした上で Back Space キーで項目削除。
また、タブキーでサクサク設定できるように開発されていますので、ある程度構造を作成した後であればキーボード操作だけで設定できると思います。

落ち着いたら公式サイトのドキュメントの方にもまとめます。

[小ネタ] SceneObject.addChildFromXML() メソッド

2008年6月18日 水曜日

前回のエントリーでは、SceneObject.toXMLString() メソッドをご紹介しましたので、今回はそれに続く形で「SceneObject.addChildFromXML() メソッド」をご紹介します。

このメソッドは引数として設定されている XML データから、自動的にシーン構造を作成することができます。

// シーン構造を定義した PRML データです。
var prml:XML = <prml version="2.0.0" type="text/prml">
<scene name="scene1">
<scene name="scene1_1">
</scene>
</scene>
<scene name="scene2">
<scene name="scene2_1">
</scene>
<scene name="scene2_2">
</scene>
</scene>
<scene name="scene3">
</scene>
</prml>;
// Progression インスタンスを作成します。
var prog:Progression = new Progression( "index", stage );
// PRML データからシーン構造を作成します。
prog.root.addChildFromXML( prml );
// 作成したシーン構造を確認します。
trace( prog.root.toXMLString() );


この機能は主に MovableType や WordPress などの、外部更新ツールとの連携を行いやすくするために用意されています。
各シーンは、それぞれ cls 属性を設定することで、任意のクラスを使用することもできますので、予め対応するクラスに処理を記述しておくことによって、複雑なコンテンツでも簡単に連携させることができるようになります。
※ただし、それぞれのクラスは予めコンパイル時に SWF 内に含まれるようにする必要があります。

また、上記のサンプルではルートシーンに対して子シーンを追加しましたが、このメソッドはどのシーンでも有効ですので、特定以下のシーン構造のみを外部データから作成することもできます。

[小ネタ] SceneObject.toXMLString() メソッド

2008年6月6日 金曜日

お知らせしていた通り、今回から trac ではどこに書けばいいのか微妙な小ネタを不定期にご紹介していきたいと思います。

今回のテーマは「SceneObject.toXMLString() メソッド」です。

複雑なシーンオブジェクトの親子構造を作成すると、全体がどういう構造なのかを確認したくなる場合があると思います。
そのような場合に便利なのが、SceneObject クラスの toXMLString() メソッドです。

このメソッドは対象の SceneObject インスタンス以下の構造を XML 形式のデータで出力することができます。
出力される XML のフォーマットは、コンポーネントベース(EasyCasting)での作成時に使用する PRML 形式に準拠したものになっており、シーンの親子構造そのままに <scene> タグが構成されます。

そのため、ルートシーンとなっている SceneObject インスタンスの toXMLString() メソッドの内容を trace() することで、シーン構造全体が確認できるようになります。

// Progression インスタンスを作成します。
var prog:Progression = new Progression( "index", stage );
// シーン構造を作成します。
var a:SceneObject = prog.root.addChild( new SceneObject( "a" ) );
var aa:SceneObject = a.addChild( new SceneObject( "aa" ) );
var aaa:SceneObject = aa.addChild( new SceneObject( "aaa" ) );
var b:SceneObject = prog.root.addChild( new SceneObject( "b" ) );
var c:SceneObject = prog.root.addChild( new SceneObject( "c" ) );
var cc:SceneObject = c.addChild( new SceneObject( "cc" ) );
var d:SceneObject = prog.root.addChild( new SceneObject( "d" ) );
// シーン構造を確認します。
trace( prog.root.toXMLString() );


ボタン作成時に移動先のパスが分からなくなった場合や、動的にシーンを作成している場合などに、ぜひご利用ください。