Home > Archives > 2009-09

2009-09

Progression4 Betaのxmlの記述で気をつけること


Progression3とProgression4 Betaでは、easycastingやprmlの際に使うxmlの記述が若干変更になっています。

Progression3

easycastingの場合

//easycastingの場合
<?xml version="1.0" encoding="utf-8"?>
<prml version="2.0.0" type="text/easycasting">

prmlの場合

//prmlの場合
<?xml version="1.0" encoding="utf-8"?>
<prml version="2.0.0" type="text/prml">

Progression4 Beta

easycastingの場合

//easycastingの場合
<?xml version="1.0" encoding="utf-8"?>
<prml version="2.0.0" type="text/prml.easycasting">

prmlの場合

//prmlの場合
<?xml version="1.0" encoding="utf-8"?>
<prml version="2.0.0" type="text/prml.plain">

このように、type属性が、どちらもtext/prmlまでは一緒です。

その後に、easycastingの場合なら、text/prml.easycasting。prmlの場合なら、text/prml.plainの様に記述します。

prmlの場合、(Progression3の場合と同じように)text/prmlと記述しても動作はします。

ですが、easycastingの場合、(Progression3の場合と同じように)text/easycastingと記述すると…

Error: XML のフォーマットが正しくありません。
at jp.progression.core.components.loader::EasyCastingLoaderComp/parse()
at jp.progression.core.components.loader::PRMLLoaderComp/_complete()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

このようにエラーになってしまいます!

Progression4 Betaを使う場合は、3の時と区別するために、text/prml.easycasting、あるいはtext/prml.plainと(きちんと)記述するのがいいと思います。

シーンエディタパネルやテンプレートからxmlを作成する場合は、どちらも初期設定値がtext/prml.easycasting、あるいはtext/prml.plainとなっていますので、ご安心を。

作ってはみたものの…


シルバーウィークの期間中、FlashDevelopでJSFLのコードヒントを表示させる方法を、あれこれ模索していました。

PHP風にしてみる?

まず最初に考えたのが、FlashDevelopのPHPのプラグインと同じ様にすればいいんじゃないかな? と。

PHPの場合は、関数の定義を別途.phpのファイルにまとめて記述してあって、それを読み込んでコードヒントを表示させるようになっています。

これと同じ様に、JSFLの定義を.jsflファイルとかにまとめて記述しておいて、そいつを読み込めば、コードヒントが出るんじゃないかと…

これで行けるかな? と思ったのですが、この方法にしてしまうと、Flash IDEの様にはコードヒントを表示してくれません。

Flfile.とコードを打っても、(下のキャプチャの様には)リストは表示されないということになってしまいます。(関数内の引数しかコードヒントが表示されないっぽいので…)

なるべくFlash IDEやFlashDevelopのASの場合のコードヒントと同じ感じにしたいので、この方法は没。

AS3の方法でやってみる

次に、AS3と同じ感じで出来ないかなぁ…と思って、試してみたのがこれ。

FlashDevelopでJSFLのコードヒント

こんな感じでJSFLのコードヒントを出せるようにはなったんですが、拡張子が.asの場合しか、動作しません。

拡張子を.jsflにしてしまうと、コードヒントは一切出なくなってしまいます。

それは当然のことで、(FlashDevelopで)AS3のコードヒントを出すのと同じ方法を採用しているからです。

上記の例でいうと、(コードヒントを出す為に、かなり強引ですが)Flfileクラスっていうのを作ってあげて、そこにいろいろ定義しているって感じです。

最後の最後で拡張子を.jsflに変更するって感じにすれば、この方法はアリかな? とは思うんですが…

拡張子が.jsflでも動く様にするには…

と、まぁ、こんな感じであれこれやっていたんですが、拡張子.jsflでもコードヒントを出す様にするには、プラグインを作るしかないんじゃない? ってことに行き着きました。

AS3のプラグインであるAS3Contextは、拡張子.asでコードヒントを出す様になっているので、これを改造すれば行けるんじゃないの?

なんて思ったので、プラグインってどんな感じで作成されているのかを知るために、とりあえずVisual C#をインストールして、プラグインのコードを見てみましたが…

う~ん、(プラグインを作るには)C#の勉強を、多少はしないと駄目なのかなぁ…と。

(どうするか)もう少し、悩んでみます。

出力パネルに表示される謎の数字とは…


Progression4(Beta版)で新規プロジェクトを作成して、index.flaから(Ctrl + Enterで)パブリッシュを行う際には表示されないんですが、preloader.flaから(Ctrl + Enterで)パブリッシュ、もしくは、プロジェクトパネルのプロジェクトをテストするを行うと、出力パネルの一番上に以下のような数字が表示されます。

0 67736
65536 67736
67736 67736
[info] 外部ライブラリ SWFWheel が有効化されました。
[info] 外部ライブラリ SWFSize が有効化されました。
[warn] ブラウザ以外で実行されたため、SWF ファイルと同階層に存在する同名の HTML ファイルを自動的に読み込みます。

この数字って何なの? と思われた方もいらっしゃるのではないでしょうか?

この数字というのは、Preloader.asファイル内の以下の記述。

/**
* ダウンロード処理を実行中にデータを受信したときに送出されます。
*/
protected override function atProgress():void {
	trace( bytesLoaded, bytesTotal );
}

ここに設定されている(読み込んだ)バイト数と総バイト数が表示されています。

ここのtrace文をコメントアウトすると、謎の数値は表示されなくなります。

FlashDevelopの新規ファイルリストに、JSFLを追加してみる


FlashDevelopで新規ファイルを作成したいって場合、リストには以下のものが入っています。

  • Blank Document(Ctrl + N)
  • AS2 Document(Ctrl + 1)
  • AS3 Document(Ctrl + 2)
  • MXML Document(Ctrl + 3)
  • HTML Document(Ctrl + 4)
  • XHTML Document(Ctrl + 5)
  • CSS Document(Ctrl + 6)
  • PHP Document(Ctrl + 7)
  • XML Document(Ctrl + 8)

FlashDevelopでJSFLを書きたいなぁって思ったんですが、その場合、Blank Documentとかを選択して、保存の際にファイルの拡張子をasからjsflに変更しなければいけません…

あるいは、FlashIDEでコードヒントを用いて書いたものを、修正したい場合にFlashDevelopを使うとか…

それなら最初っから、FlashDevelopで新規ファイルを作成したら、拡張子が.jsflになって、IDEの様にコードヒントが出るようになればいいのに!

これって、どうにかならないものか? と思って、とりあえずFlashDevelopのSettingフォルダ内にあるMainMenu.xmlを眺めてみると、多少手を加えてあげれば、新規ファイルのリストに任意のファイル形式(jsfl)を追加することは出来そうだったので、試してみました。

まず、C:\Documents and Settings\Administrator\Local Settings\Application Data\FlashDevelop\Templatesにあるテンプレートファイルをコピーして、ファイル名を変更します。今回はJSFL.fdtにしてみました。

で、テンプレートの中身をこんな感じで書いてみました。

/**
$(CBI)* @author $(DefaultUser)
$(CBI)* @see $(See)
$(CBI)* @email $(EMail)
$(CBI)* @version $(Version)
$(CBI)* @date created $$(#DateTime#=MM/dd/yyyy)
$(CBI)*/
$(EntryPoint)

次に、C:\Program Files\FlashDevelop\SettingsにあるMainMenu.xmlファイルを開きます。

<?xml version="1.0" encoding="utf-8" ?>
<mainmenu>
	<menu label="Label.File" name="FileMenu">
		<menu label="Label.New" name="NewMenu">
			<button label="Blank Document" click="New" shortcut="Control|N" />
			<separator />
			<button label="AS2 Document" click="NewFromTemplate" tag="as;$(BaseDir)\Templates\AS2.fdt" shortcut="Control|D1" />
			<button label="AS3 Document" click="NewFromTemplate" tag="as;$(BaseDir)\Templates\AS3.fdt" shortcut="Control|D2" />

7行目あたりからの記述を見て、これを真似て書けば、リストに表示されるんじゃない? って思ったので、以下の様に追記してみました。

<?xml version="1.0" encoding="utf-8" ?>
<mainmenu>
	<menu label="Label.File" name="FileMenu">
		<menu label="Label.New" name="NewMenu">
			<button label="Blank Document" click="New" shortcut="Control|N" />
			<separator />
			<button label="JSFL Document" click="NewFromTemplate" tag="jsfl;$(BaseDir)\Templates\JSFL.fdt" shortcut="Control|D0" />
			<button label="AS2 Document" click="NewFromTemplate" tag="as;$(BaseDir)\Templates\AS2.fdt" shortcut="Control|D1" />
			<button label="AS3 Document" click="NewFromTemplate" tag="as;$(BaseDir)\Templates\AS3.fdt" shortcut="Control|D2" />

tagの箇所に、jsflと設定することで、新規>JSFL Documentを作成した際、ファイルの拡張子がjsflになってくれます。

で、あとはshortcutキーを設定。何で、Dって付けなきゃ駄目なのか、イマイチ理解してませんが…(Dは+ってことなの?)

こんな感じで設定しておいて、FlashDevelopを再起動。

File>Newを選択してみると…

JSFLというファイル形式が追加された!

無事、JSFL Documentが追加され、ファイル名が名称未設定.jsflになってます。ショートカットも機能しています。

こんな感じで、FlashDevelopのリストに、任意のファイル形式を追加してあげることは出来ました。

けど、このままだとコードヒントが出ないので、Flash IDEでJSFLを書くのに比べると、かなり難あり。

シルバーウィークの期間中、ちょっと挑戦してみようかなぁ…

機能満載のプロジェクトパネル


Progression4(Beta版)になって、プロジェクトパネルの機能の充実っぷりが、物凄いことになってます!

そこらあたりを、簡単にエントリ。

プロジェクトパネルの機能は大きく分けて3つ。

  1. プロジェクト
  2. ツール
  3. ヘルプ

プロジェクト

プロジェクトを作成

プロジェクトには、二つの機能が備わっています。

  1. 新規プロジェクトを作成
  2. (既存のプロジェクトを)開く

この二つは、プロジェクトから選択しなくても、画面左にある「新規作成」「開く」のボタンからも実行可能です。

ツール

ツールを選択

ツールにも、二つの機能が備わっています。

  1. コンポーネントアシストを有効にする
  2. 環境設定

「コンポーネントアシストを有効にする」と「環境設定>コンポーネント」の詳細は、前回のエントリをご覧ください。

プロジェクトの詳細設定

プロジェクトを書き出した後、基本ファイル(Index.as、IndexScene.as)をどのような状態にするか? とか、アップデートの際にバックアップをしておくか? 等の設定が可能です。

プロジェクトの登録条件

作成したプロジェクトをプロジェクトパネルのリストに登録するか? の設定です。

ヘルプ

ヘルプ機能

  • オンラインヘルプ
  • オンラインAPIリファレンス
  • オンラインフォーラム
  • 機能拡張を入手
  • ソフトウェアの更新を確認
  • Progression4について

各項目をクリックすることで、それぞれのURL先にジャンプ出来ます。

新規プロジェクトを作成

プロジェクトを新規作成すると、各種詳細を設定するパネルが開かれます。

ここでは、一つだけご紹介。

カラーラベルの設定

何も設定をしないと、カラーはランダムに選ばれます。

例えばですが、複数人で作業をしているならば、各人にそれぞれキーカラーを設定しておきます。

A君
Bさん
C君

そして、それぞれのキーカラーをラベルに設定しておくことで、わざわざクラスファイルの中を見なくても、カラーラベルを見るだけで、このプロジェクトは○○が作成したのね! ということが確認出来るようになります。

各種設定が終わったら、作成するボタンを押します。

プロジェクトをテストする

プロジェクトをテストする

プロジェクトの作成が終了すると、上記の様な画面が表示されます。

プロジェクトをテストするボタンを押すと、パブリッシュを行うことが出来ます。

リリースビルドを書き出す

リリースビルドを書き出す

この機能は、先のプロジェクトをテストすると何が違うのかというと…

プロジェクトのリリースビルド書き出し機能が追加されます。この機能を使用すると、不要なエラーメッセージを除去し、trace() を無視した状態の swf ファイルを bin-release フォルダに書き出します。(Progression4 Public Beta リリースノートより引用)

この機能を実行すると、以下の様に「bin-release」というフォルダが新たに追加されます。

フォルダが一つ追加された

ですので、プロジェクトをテストするは、開発用。リリースビルドを書き出すは、公開用に使うといいと思います。

開発用ビルドをブラウザでプレビュー

ブラウザでプレビュー

二つの機能が備わっています。

  1. 開発ビルドをブラウザでプレビュー
  2. リリースビルドをブラウザでプレビュー

ブラウザでプレビューしたい時に使います。

プロジェクト設定を変更する

プロジェクト設定を変更する

例えば、新規プロジェクトを800×600に設定していたんだけど、サイズを変更しなければいけなくなったって時に、この機能を使うと便利!

このボタンを押すと、プロジェクト作成の画面に戻ることが出来て、そこで(パラメーターを)変更して保存すると、最初に設定したパラメーターを上書き保存してくれます。

なので、index.htmlを開いて、パラメーターを修正して…とかしなくてOKなんです。

プロジェクトをアップデートする

プロジェクトのアップデート

プロジェクトのアップデートを行うことが出来ます。

現在はBeta版なので、この機能を使うことは出来ません。あしからず。

手動でクラスファイルを置き換えてあげる必要があります。

まとめ

簡単にではありますが、プロジェクトパネルの解説をしてみました。

いや~、凄いです。お腹一杯です。

Home > Archives > 2009-09

Search
Feeds
Meta

flashDevelopスポンサー

Return to page top