Home > Archives > 2009-11

2009-11

一週間前になりました!


Spark67 Part3』の開催一週間前になりました!

Spark67 Beginners

spark67・ビギナー編

Beginners編の詳細&申し込みは、こちらからどうぞ!

Spark67 Deep

spark67・deep編

Deep編の詳細&申し込みは、こちらからどうぞ!

年末進行などでお忙しいとは思いますが、お時間に都合がつきそうな場合は、是非お越しください。

気合いを入れて、準備しておきます!

JSFLでフレームを挿入する際、気をつけること


JSFLを使ってちょっとやりたいことがあったんですが、その際、ハマッたことがあったのでメモ。

キーフレーム&フレームを挿入

var path = fl.getDocumentDOM().getTimeline();

//キーフレーム&フレームを挿入
path.insertKeyframe(4);
path.insertFrames(5,false,4);

これを実行すると、1と5フレーム目にキーフレームが。10フレームまでフレームが挿入されます。

JSFLを使ってフレームを挿入

下にレイヤーがあると…

さっきのコードを実行した上で、新たにレイヤーを作成し、そこでもう一度実行してみると…

var path = fl.getDocumentDOM().getTimeline();

//キーフレーム&フレームを挿入
path.insertKeyframe(4);
path.insertFrames(5,false,4);

//新たなレイヤーを作成
path.addNewLayer("test","normal",true);

//キーフレーム&フレームを挿入
path.insertKeyframe(4);
path.insertFrames(5,false,4);

insertFramesの第一引数で指定したよりも、何故だかフレームが余計に追加されています…

下にレイヤーがあると、フレームが倍挿入されてしまう

う~ん、何で?

手動でレイヤーを追加してみる

あれこれ悩んでいたんですが、試しにレイヤーの追加ボタンを押してみると…

手動で新規レイヤーを作成した例

単に新規レイヤーを追加しただけなのに、下のレイヤーのフレーム数と同じになるように、自動的にフレームが追加されています。

Flash側のフレームの自動追加 + insertFrames

どうやら、Flash側が下のレイヤーとフレーム数を等しくする為に、足りないフレームを自動追加してくれているみたいです。

フレームを自動追加した上で、JSFLのinsertFramesを行っているから、先の状態(フレームが余計に追加)になっていたみたいです。

そこで、どうするか?

パターン1

insertFramesの第一引数を、0に設定してあげます。

var path = fl.getDocumentDOM().getTimeline();

//キーフレーム&フレームを挿入
path.insertKeyframe(4);
path.insertFrames(5,false,4);

//新たなレイヤーを作成
path.addNewLayer("test","normal",true);

//キーフレーム&フレームを挿入
path.insertKeyframe(4);
path.insertFrames(0,false,4);

そうすると、余計にフレームが追加されません。

パターン2

insertFramesの記述を消去してあげる

var path = fl.getDocumentDOM().getTimeline();

//キーフレーム&フレームを挿入
path.insertKeyframe(4);
path.insertFrames(5,false,4);

//新たなレイヤーを作成
path.addNewLayer("test","normal",true);

//キーフレームを挿入
path.insertKeyframe(4);

Flashが下のレイヤーに合わせてフレーム数を調整してくれるので、insertFramesの記述を消去してもOKなんですね!

パターン1の様に、わざわざinsertFramesの引数を0にするより、パターン2の方が良さそう…

1&2のスクリプトを実行すると、以下の様になります。

JSFLを調整すると、きちんと出来た

両者のいいとこ取り


前回、SharpDevelopだと閉じ括弧の補完をしてくれるから、こっちの方がいいかも? と思ったんですが…

var a:int=2*3

(FlashDevelopで)こんな感じで、コードを書いていた場合、3の後で;(セミコロン)を打った途端…

var a:int = 2 * 3 ;

自動的に半角スペースを入れて、コードを見やすくしてくれます。

てっきりSharpDevelopでも同じことしてくれるんだろうなぁ…と思っていました。

SharpDevelopだと

int a=2*3

ここまで打って、セミコロンを入力してみると…

int a=2*3;

何も変わりません!

あらら…

SharpDevelopだと、自分で入力しなくちゃいけないっぽい…(単に僕が知らないだけかもしれませんが…)

これ、結構面倒…

C# 2008 Express Editionだと

C# 2008 Express Editionで同じことをしてみました。

int a=2*3

3の後で;(セミコロン)を入力すると…

int a = 2 * 3 ;

おぉ、こちらは何故だか半角スペースを入れてくれる!

あとExpress Editionは、コードを入力していくと、逐一(閉じ括弧が必要です! とか)エラー一覧パネルに、警告を表示してくれます。

この点は、初心者にとっても優しい。

けど、Express Editionは行番号を表示してくれないっぽい…

う~ん、両方のいいとこ取りのエディタって、あったりするんでしょうかねぇ…

SharpDevelopを入れてみた


SharpDevelopがどんなものか試してみたかったので、入れてみました。

断然、インストールが早い!

Visual C# 2008 Express Editionをインストールした時は、「一体、何分掛かるの?」ってくらい待たされたんですが、SharpDevelopはあっという間にインストールが終了!

使うには、.net Frameworkも必要なんですが、FlashDevelopを使っている方は、既にインストールされていると思うので、SharpDevelopをインストールするだけでOK。

インストール→メニューの日本語化とかは、マイコミジャーナルのSharpDevelopの記事に詳しく書かれていました。

Visual C# 2008 Express Edition

GoogleCodeから落としてきたFDのコードを開いてみた時に、ちょっと差があったので、それを書いておきます。

キャプチャはPHPContextプラグインを開いてみた時なんですが、Visual C#の場合だと、エラー一覧のパネルに、不足しているプラグインが何かを表示してくれます。

Visual C#での表示例・その1

ソリューションエクスプローラのパネルでも、不足しているものが何かを確認することが出来ます。

Visual C#での表示例・その2

これを見ながら、不足しているコンポーネントを追加していけばOK。

SharpDevelop

同じ事をSharpDevelopでも行ってみました。

SharpDevelopでの表示例・その1

エラーパネルに、何も表示されません。

SharpDevelopでの表示例・その2

ソリューションエクスプローラのパネルでも、不足しているものが何かは確認することは出来ませんでした。

(SharpDevelopは)デバッグやビルドを行うまでは、不足しているものを教えてくれないっぽい? んですかね?(設定を変更すれば、SharpDevelopでも可能になるのかな?)

まだちょっと触ってみた程度ですが、両者は(それほど)変わらないような気がします。

でも、書籍やネット上の記事は、Visual C#の方が充実しているので、僕みたいな初心者にはVisual C#の方がいいのかも…

追記

コード補完でSharpDevelop素敵! と思ったことがあったので、追記。

Visual C# 2008 Express Editionの補完

using System;

class Sample
{

クラスを宣言して{を入力した後で、Enterを押すと、Visual C#ではエラーパネルに以下のものが表示されます。

Visual C#のコード補完

閉じ括弧がありませんよ~! って怒られます!

つまり、自分で打ちなさい! ってことです。

SharpDevelopの補完

using System;

class Sample
{

さっきと同じようにコードを打って、Enterキーを押すと…

SharpDevelopの補完

FlashDevelopの場合と同じように、閉じ括弧を補完してくれます!

FlashDevelopに慣れている人は、こっち(SharpDevelop)の方がいいのかもしれない…

『CompAssist』をちょっとだけアップデート


wcanのネタ用に作成した『CompAssist』というmxpですが、ちょっとだけアップデートしました。

(以前のものですと)InOutMovieコンポーネント&ボタンコンポーネント6種を配置しようとした場合、以下のようなフレームの間隔をいくつにするか? のダイアログが表示されます。

フレーム数を指定

ここで、10とか15とかの数値を入力していたんですが…

Progressionのプロジェクトパネルで新規プロジェクトを作成する際、ツール>環境設定>コンポーネント>基本設定でフレームの挿入間隔を設定することが出来ますよね?

そこで一度指定しているのに、コンポーネントを配置する時にもう一度指定するのは、二度手間だよなぁ…と。

なので、プロジェクトパネルで設定したフレームの挿入間隔の値を拾ってきて、(CompAssistを使った場合も)その値でフレーム数が作成されるようにしてみました。

つまり新規プロジェクトを作成する際に、フレームの挿入間隔を15にすると、CompAssistを使ってコンポーネントを配置した場合も(自動的に)フレームの間隔が15になるということです。

デザインとか何にも手をつけていませんが、とりあえずはこんなとこで…

ダウンロード

ダウンロードは以下からどうぞ!

以前DLして頂いている場合は、今回もフォルダの中にwcanのスライドとかサンプルサイトとかが(そのまま)入ってますんで、mxpだけ使ってください。

Home > Archives > 2009-11

Search
Feeds
Meta

flashDevelopスポンサー

Return to page top