ASOK?
ActionScriptでFlashつくるよ
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
page top

記事を投稿しても、pingが送られなくなったような…。

スポンサーサイト
page top

ASOK? ひさしぶりにFlashを拡張してみたの続き。
Commands用JSFLもろもろ - blog.seyself.comから、以下の拡張をさらに追加してみた。

  • ItemSearch.jsfl
  • Numbering.jsfl
  • setZeroPosition.jsfl
  • SplitFrames.jsfl

ItemSearch.jsfl

選択したステージ上のムービークリップをライブラリの中から探して選択します。

Numbering.jsfl

選択したステージ上の複数のムービークリップに連番付きのインスタンス名を設定します。

似たようなものはいろいろあるけど、数字をいくつからはじめるか指定できるのはこれだけな気が。

setZeroPosition.jsfl

選択したステージ上のムービークリップの位置座標を整数値に丸め込みます。

すごくイイ。Flash4のころから、勝手につく小数点が気になってしょうがなかったんで。複数選択時にうまくいかないことがあるのが残念。

SplitFrames.jsfl

選択中の複数のレイヤーを1つのレイヤー上に、フレーム毎に分割して配置します。

これ!こんなのが欲しかった…。できれば複数アイテム→キーフレームがよかったんですが、ぜいたくは言いません。これによって、複数アイテム選択→レイヤーに配分→キーフレームに配置のコンボが可能に!

ちなみに、ちゃんとレイヤー名のとこをクリックして選択しないと動かないです。

2009/04/10追記

page top
MovieClipの拡張プロパティ
_scale
_size
_frame
_tint
_tintPercent
_brightness
_brightOffset
_invertColor
_colorReset
_contrast
_colorTransform
page top
trick7の人がちっとも進めてくれないので、頑張って超訳してみた。

label
アクションに名前をつけることができる。skipTo("label")とかして使う。

target
対象オブジェクトまたは、その配列。デフォルトの対象リストを上書きする。

addTarget
対象オブジェクトまたは配列を、デフォルトの対象に追加する。

ease または easing
mx.transitions.easingクラス、PennerEasingへのショートカット、Custom Easing Toolで生成した配列、nullまたは指定なしのいずれか。nullまたは指定なしの場合、ZigoEngine.EASINGかPennerEasing.easeOutQuintが適用される。

seconds, time or duration
時間指定。「2」(=2秒)とか「"01:75"」(=1.75秒)って記述。timeフォーマット

delay or startAt
開始ウェイト。timeフォーマット

event
カスタムイベントを宣言する?

eventparams
カスタムイベントのイベントオブジェクトにコピーされるプロパティ。「event」と同時に使う。

func
コールバック関数を指定する。Functionオブジェクト、関数名、easyfunc文字列("myClip.doSomething(true);"のような)のいずれか。easyfuncを使うには、Shortcutsを宣言すること。funcフォーマット

scope
デフォルトスコープを上書きする。
※このプロパティは特殊で、全てのコールバック関数とruntime-evaluation関数に影響する。

args
"func"で指定したコールバック関数への引数。配列にすることで、複数の値を渡すこともできる。

startfunc
トゥイーン開始コールバック関数。delay指定を反映するみたい。書き方はfunc同様。funcフォーマット

startscope
これが定義されていなければ、scopeプロパティまたは、デフォルトスコープが使われる。

startargs
"startfunc"への引数。配列でも可。

updfunc
トゥイーン中のコールバック関数。funcフォーマット

updscope
"startscope"に同じ…。

updargs
"updfunc"への引数。配列でも可。

extra1
イージングメソッドに送られる、5つめのオプションパラメータ。Elasticの振幅か、Backのオーバーシュートを指定。

extra2
イージングメソッドへの、6つめのオプションパラメータ。Elasticの期間?(period)

_bezier_
ベジェ。(必須ではない。controlX, controlYを見よ)Object{x:,y:,controlX:,controlY:}。StrinでもOK(?)
※曲線で動かすには、少なくとも1つのパラメータが必要。
参考文献:s.h.log: Flash - FuseKitの_bezier_オプションで放物線移動


controlX, controlY
ベジェで動かすためのパラメータ。

cycles
最初と最後を行ったり来たりする。2以上の整数を指定。無限ループはできない。
(ZigoEngine.doTweenでは、0か"LOOP"を指定するとできるみたい)

skipLevel
トゥイーンによる見かけ上の変化がない場合や、トゥイーン時間が0秒の場合のエンジンの振る舞いの設定です。0、1、2のどれか。
0―全て実行。
1―変化なしトゥイーンはスキップ
2―変化なしトゥイーンや時間なしトゥイーンは、コールバック/イベントも実行しない
カスタムイベントパラメータに適用され、"onComplete"のような基本イベントはスキップされない。

trigger
シーケンスが完了する前に、次のシーケンスに進めることができる。timeフォーマット。
※onCompleteイベントは、このプロパティの影響を受けない(?)

command
"start","stop","pause","resume","skipTo","setStartProps"。
同名のメソッドと同じ働きをする。例えば最後に{command:"start"}と記述すれば、ループする。トゥイーン指定のグループとは、分けて記述しないとダメ。"command"と同じグループで使えるのは、scope, args, label, delayだけ。
※"args"はメソッドの引数として機能する。例えば{ command:"skipTo", args:3 }。

はあ、疲れた。
page top

何回使っても忘れるので、メモがわりのまとめ。

シンタックス:

やっぱりArrayシンタックスでしょう。

import com.mosesSupposes.fuse.*;
ZigoEngine.simpleSetup(Shortcuts, PennerEasing, Fuse);
var f:Fuse=new Fuse();
f.push({target:mc,_alpha:50,duration:0.4,easing:"linear",func:callback});
f.addEventListener("onComplete", myListenerObj);
f.start();
:
f.pause();
f.stop();

オブジェクトシンタックスのプロパティ名

よく使う

target
対象オブジェクト。
duration
トゥイーンする秒数。
easing
イージング関数
func
終了コールバック

その他はclass com.mosesSupposes.fuse.Fuseを参照

がんばって翻訳してみた。FuseKit オブジェクトシンタックスのプロパティ

同時に複数のアニメーションを実行するには:

配列に入れる。

var f:Fuse=new Fuse([
	{target:mc1,_alpha:50,duration:0.2},
	{target:mc2,_alpha:50,duration:0.3},
	{target:mc3,_alpha:50,duration:0.4}
]);

targetプロパティは配列表記が可能。他はよくわからない。文字列配列表記ができた気がするが…。

設定したアニメーションを全部消す:

f.splice(0,f.length);

色をトゥイーンする

プロパティ名に'colors'を含め(大文字小文字は問わない。'myColors'、'mccolors'など)、値はArrayに入れる。

{ myColors: [ 0x000000, 0xFFFFFF ], scope:this, updfunc:'redrawGradient' } 

イベント

onStart、onStop、onPause、onResume、onAdvance、onComplete

(func、startfunc、updfuncで十分なので、あまり使わない。)

FuseFMPのプロパティ名:

hoelog - Fuse Kit : FuseFMPで使うBitmapFilterのプロパティ一覧

page top
  • パブリッシュ設定の「ローカルでの再生に関するセキュリティ」
  • crossdomain.xml
  • HTMLのallowScriptAccess属性
  • ActionScriptのSystem.security.allowDomain()
  • ActionScriptのSystem.exactSettings
  • FlashPlayer設定マネージャ

パブリッシュ設定の「ローカルでの再生に関するセキュリティ」

UseNetwork フラグをON/OFFする。

crossdomain.xml

Flashから別ドメインの外部ファイルを読み込む場合、外部ファイルが置かれるサーバに設置し、許可する読み込み元ドメイン設定する。
(たぶんFlash8から)System.security.loadPolicyFile()を使うことで、ルート以外にも置けるようになった。

カスタムポリシーファイル crossdomain.xml について - yoshiweb.NET

HTMLのallowScriptAccess属性

swfからJavaScript呼び出しを制御する。

Adobe - デベロッパーセンター : 外部APIを使用したFlashとJavaScriptの接続

ActionScriptのSystem.security.allowDomain()

別ドメインのswfから読み込まれた場合に、自分自身(swf)内部メンバへのASによるアクセスを制御する。

ActionScriptのSystem.exactSettings

カメラ/マイクのアクセス権やSharedオブジェクトの基準として、スーパードメインを一致規則を使うか、ドメイン完全一致規則を使うか。

FlashPlayer設定マネージャ

いろいろ。

参考文献

Adobe - デベロッパーセンター : Flash Player 8 のセキュリティ機能の変更点

page top
  • コードの不吉な匂い=bad code smell
  • smells like teen spirit

なんか似てない?

smells like teen codeとか。

page top

trick7.com blog: ActionScript 3.0 コーディング規約の日本語訳

軽く読み飛ばしていたけど、ちょっと気になったのでメモ。

自然に読めるような順番で比較文を書きましょう:

正しい記述例:

if (n == 3) // "もし n が 3 の時"

悪い記述例:

if (3 == n) // "もし 3 が n の時"
Expressions - Comparisonの項

悪い例として挙げられている、「if (3 == n) 」という記述法のメリットは、「==」を間違って「=」とタイプした場合にある。たしかJoel on Softwareで読んだ。

「悪い記述例」だとif (3 = n)となる。コンパイルエラーが発生し、プログラマはたちどころに間違いに気づくだろう。

「正しい記述例」だと、if (n = 3)となる。カッコの中は代入式となりエラーなしにコンパイルできてしまう。この間違いに気づくにはしばらくかかるだろう。

だからと言ってAS3コーディング規約が間違っているというつもりはない。「if (n == 3)」には、誰にでも理解しやすいというメリットがある。対する「if (3 == n)」は理解しにくいというデメリットがある。

それぞれにメリットとデメリットがあり、どちらを選択するかはプライオリティの問題だと思う。たぶんAS3コーディング規約は、複数人で作業することを念頭において、他人が読んでも理解しやすいコードを書くことを目標としているのだろう。

Joel on Softwareを読んでたせいか、翻訳文体がうつったみたい。

Joel on Software
Joel on Software
posted with amazlet on 08.03.15
Joel Spolsky 青木 靖
オーム社 (2005/12)
売り上げランキング: 2805
page top
いまさらMVCの意味が、なんとなくわかってきた。
Cにコード書きすぎだ。データに付随するコードはMに書けばいいんだ。Cはコントロールに徹する。
page top
ゲームプログラミングでよく使われるらしい、タスクシステムの解説。
面白い。

タスクの基本―スタックポインタが興味深い。オブジェクトの使いまわし。
タスクの状態遷移―処理関数が状態を表す。
タスクを使う上での注意事項―タスク削除時には即時削除しない。

via BeInteractive! [ActionScript2.0 Game Framework]
page top
Copyright © 2005 ASOK?. all rights reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。