[ Flash ]

Vector - Flash CS4 Professional ActionScript 3.0 Language Reference

compareFunctionは
function compare(x:T, y:T):Number {}

a negative number, if x should appear before y in the sorted sequence
0, if x equals y
a positive number, if x should appear after y in the sorted sequence

と書いてあるのだけど、実はint(±1以上?)じゃないと判定してくれない?

[ Flash ]

プロトタイプやらスケルトンを急ぎで作りたいときに、まれにfl.controls系を使いますが、配置の際に高さの問題がでてきて、いつも忘れてバタバタするのでメモ。

fl.controls系でテキストフィールド(textArea)を内包しているコンポーネントは高さが100pxになる。変数で配置して行く場合など非常にうっとおしいことになる。単体でのheightはoverrideされて見た目の高さを取得できるが、親DisplayObjectのheightは100px。ちなみにgetRectだと単体でも100になる。これはoverrideされていないらしい。(半端だ)

これの原因は大概コンポーネントの中に含まれるtextAreaで、autoSizeがカマされてない素の状態でaddChildされているのかheight=100である。fl.controls.TextInputだと以下のような感じで調整してやれば最適な高さになる。

ただfl.controls.ComboBoxとかだと階層化していてめんどくさいので、

な感じでやっちゃう。 全部試したことがないので、NGなコンポーネントもあるかも知れないけど。


ということでメモ

[ Flash ]

よく忘れるのでメモ
C:\Program Files\Adobe\Adobe Flash CS4\Common\Configuration\ActionScript 3.0\projects\Flash\src\fl
C:\flex_sdk_3\frameworks\libs

[ Flash ]

ううーん、ちと欲しいなとおもってググって見つけたのだけど、ちょっとByteArrayの走査の部分が重たそうな気がするなぁ・・

Query the Loaded Classes in Flex / AS3

Source of DefinitionListDemo
AS3 Commons Reflect - Welcome to as3commons-reflect

結局のところ、親はこれらにダイナミックに対応するわけではなく、明示的に指示をだすので、事前把握されてるということが前提と考えると、あえてダイナミックに処理する必要はないんだよなぁ・・。

とすると、どこかラッパーみたいな中でそれらを定義するか、定義自体を外部ファイル化してしまうか?なんだけど、定義自体を外部化しても対してメリットがないのかも・・・。

[ Flash ]

自分の書いたコードを見ていると
結構
赤面
したりする

赤面しつつも
あぁ
まだ
俺は
進化
してるんだな

感じて
ちょっと
安心
したりも
する。

微妙な
お年

[ Flash ]

32bitを超えた値だと、超過部分が-1に変化してしまう。
つまりこんな挙動になる。

実行結果

0 @ 4294967295
1 @ 99
2 @ 98
3 @ 198
4 @ 197
finish 197

ややこしいね。

例えば

とすると

0 @ 4294967205
1 @ 9
2 @ 8
3 @ 108
4 @ 107
finish 107

こーなる。
ああ面倒くさい。

ちなみにNumberは53 ビットまで使用可能なので、Numberで計算するとこんな感じになる。

最後にuintに変換した部分は、また超過部分が-1で演算されるので答えは同じになってしまうけど・・。

0 @ 4294967205
1 @ 4294967305
2 @ 8589934600
3 @ 8589934700
4 @ 12884901995
finish 12884901995
to uint = 107

[ Flash ]

再コンパイル無しでのプレビュー機能。
すげーほしい。
ほしくね?
オラめっさ欲しいわ

[ Flash ]

一番作業時間を喰うのは、Flashのコンパイル待ち時間なんじゃないだろうか?
ちょっとソースを直して、コンパイルして20秒待機とか、時間がもったいなさ過ぎる。
といって、ソースをかなり直してからコンパイルしたら、えらいエラーがでて、どこからやり直せばええねん?!見たいなことになるし。

なんにしてもコンパイルの時間の短縮を!
わーわー!!

[ Flash ]

最近Flashのオーサリング環境では問題なく動いているのに、HTMLに組み込んだらエラーになるケースが多い。HTMLと連動していたりするからだろうけど、まぁなんにしてもHTMLに組み込んでからのエラーは拾いにくくてめんどくさい。

そんなこんなでこの3連休フガフガしてんねん。

[ Flash ]

いつも忘れるのでメモ。

setAdvancedAntialiasingTable (TextRenderer.setAdvancedAntialiasingTable メソッド)

CSMSettings - ActionScript 3.0 言語およびコンポーネントリファレンス

Adobe ActionScript 3.0 * 高度なテキストレンダリング

[ Flash ]

Fiddler Web Debugger - A free web debugging tool
横取り丸+InetSpyからFiddlerに乗り換えてかなり経ちますが、先日やっとこJSON Viewer - HomeのJson Inspectorを入れてみた。

指定の通りdllを配置して、configファイルも修正したのだが、起動するとこんなエラーが出る。
090702.png

一応動作しているから大丈夫なのだと思うのだけど、なんか気持ち悪い。


一応ソフトを軽く紹介しておくと、

Fiddler
FiddlerはMSのプログラマの方が作られたとかいう話ですが、通信を拾うProxyサーバになります。(横取り丸+InetSpyを合体させたようなもの)
InspectorをWebFormsで見れる、returnのJSONをパースしてくれる(これはJSON Viewerのadd onを入れる必要あり)、Encorder機能、gzip encord、requestのBuild等、サーバとの連携関係の開発に際して必要なものがほぼ実装されているんじゃないかと思います。手放せない感じです。


JSON Viewer
Json Editorです。これは単体で動作させてもすばらしい。これまでJson Editorって使い勝手の良いものがなくて(大体重たくて使い物にならない)、自分でAIRで作るしかないのか?とモンモンとしていましたが、これに出会ったおかげでそんな思いも大体消し飛びました。(といってもfile openやらD&Dが実装されてなくて、基本Clipboard経由でのやり取りっつーところが腑に落ちないのですが・・・)しばらくこれで耐え忍びたいと思います。これでも我慢できなくなったら自分で作ろうと思います。

これに
帯域管理NEGiES、携帯シミュレータFireMobileSimulator.orgを組み合わせれば、ほぼ一通りの環境と動作確認が可能なんじゃないかと思います。

なんか他に良いソフトがあったら教えてください。
本当はJson Inspectorを追加して発生するエラーの回避方法が知りたい訳ですが・・・。


ということで作者のみなさんに感謝!

[ Flash ]

昨日からこのエラーではまっている。

VerifyError: Error #1021: 最低 1 つのブランチターゲットがメソッドの有効な命令を反映していません。 * メモ : このエラーは、SWF 内の ActionScript が無効であることを示します。 該当ファイルが壊れていない場合は、問題をアドビ システムズ社までご報告ください。

なのだそうだ・・・。
どうもswitch文あたりが影響を与えているっぽいが、なんか良く分からないな・・・。

[ Flash ]

よく忘れるのでメモ
Supported Character Sets - ActionScript 3.0 Language and Components Reference

日本語だけでも聞いたこと無いやつあるけれど・・・。
これとか昔のMACのキャラクターセット?
Japanese (Mac) x-mac-japanese

[ Flash ]

イメージやらswfは特に問題ないが、flvってどうやるんだろう?
attachStreamにURLStreamを割り当てるわけでもないだろうし・・・。

誰かやっている人とかいるのかしら??
(まぁそんな需要もないかもしれんのだけど)

read more"URLStreamでFLVを再生する" »

[ Flash ]

SecurityDomainで諸々メモ。(まだ間違っている部分があるかもしれない)

条件
・セキュリティポリシーファイルを読込先サーバに配置できない
として、どーやってそのサーバに配置されているソースを読み込むか?ということでProxyのような働きをするswfを用意し、それを介して読込先サーバのリソースにアクセスしてみるようなかんじ。


・Security.allowDoaminの設定。
Security.allowDoamin("*")でも良いが、危険なので

な感じで動的に設定した方がよさげ。


・LoaderContextの設定
checkPolicyFile = false;
securityDomain =null;
これらを設定するとcrossdomain.xmlを参照し、その時点で停止。
ApplicationDoaminの設定は問題ないが、Security.allowDoamin前に確認されるからか、適応されないっぽい。まぁLoaderContext無しで動くようにする必要がある。


・子swf内クラスのイベント
取得するにはdispatchを受け付けるように、親にもSecurity.allowDoaminが必要(当たり前ですが)


・子swfでのクラス定義のタイミング
ポリシーファイルが定義されている場合は、子swfの変数として
var a:hoge = new Hoge()
見たいにして定着させるが、Security.allowDoaminで開放する場合には、解放後定義しないと参照できない。つまりコンストラクタで

とした後に new Hoge(); 等と空打ちして焼き付ける。


・子swfのクラスの取得
SecurityDomainが同じ場合は、ApplicationDoamin.currentDoamin.getDefinitionでクラスを取得できるが、前述の通りSecurityDomainが異なるためApplicationDoamin.currentDoaminに子swfが含まれていない。このため

みたいに取得する。ただし、これを親クラス側で変数に代入して流用は可能。
ただし型指定をするとエラーになる。 簡単なのは子クラスを格納するクラスを作って、その中にStaticで格納するのが楽。


・Loader系
子swfで定義されたLoader拡張クラスを、親swfでgetDefinitionして取得した後は、親でインスタンス化しても使用可能。ただしcontnt等セキュリティエラーに抵当するプロパティもある。例えばBitmapDataを取得したい場合は、子swfに含まれるLoader拡張クラスの中で、BitmapData化して引き渡すなどの処理が必要。

こんなかんじ?このBtimapは親で自由に使える。Sprite系なども基本newしてしまえば自由に使えるが、SecurityDomainを超えた要素はやはりセキュリティエラーになるので注意。(この辺ローカルでは確認できないので、サーバ上で確認するしかないのだけど・・、そこが非常に面倒)


ただリダイレクト系の分散負荷のシステムだと、結局このproxySWFとそこから呼ばれるソースのIPがまた変わってしまうという延々とループな感じの挙動にってしまう。イメージやらswfやらが対象であればバイナリ化してLoadしたほうが圧倒的に楽。ただFLVの場合が・・・・汗

ということでとりあえずメモ。

[ Flash ]

ScruityDomainを超えるとApplicationDomainを統一しても、子SWFのドキュメントクラスはgetDefinitionできなかったっけ??

なんか頭こんがらがってきた。

[ Flash ]

結局最終的には、行ごとにTraceを書いて、どこでバグが起きているのか?を書き出している。
Progressionなら、name指定すれば良いのは分かっているが、全部のコマンドにnameを指定するのは正直しんどい。なんか勝手にそのASの何行目のコマンドだよ!とか取得して埋め込めないものだろうか?とか書いてみる。
ゴメンナサイ、ゴメンナサイ。

地道にがんばります。

[ Flash ]

もうこれ前々から良く分からないんだけど、改めて今日再チャレンジしたけどやっぱり分からない。
何がやりたいかっていうと
・右揃え(基点、行送り共に)
・改行アリ
・幅固定
をやりたいってこと。
幅固定をなしにして普通にやるとこんな感じ。

mmts_mobile004.gif
この場合はtextFieldの端ではなく、内部のテキストの右端がx=200にフィットする。
TextField自体の右端にあわせる場合は一度defaultのwidth=100をリセットしてwidth=0とすれば可能。またautosize設定の前にx座標を指定する場合には、これも同じく一度width=0にしてやればよい。
こんな感じ

mmts_mobile001.gif

で、wordWrapを入れた場合いきなりこんなことになる。

mmts_mobile002.gif いきなり左基点である。(この場合のTextFieldの幅はdefaultの100)

read more"TextFieldAutoSize.RIGHTの憂鬱" »

[ Flash ]

public var aaa:Sprite = new Sprite();
とかして、何も内部に入れないままで、height、widthを設定すると、height=0,width=0とかになるんだけど、その後graphicとかで内部に何か配置しても表示されなかったりする。
なんかイマイチ仕様が良くわかってないけど、変数定義で初期化している場合にはこれ気をつけよう。

3時間も無駄にしてしまった・・・。

[ Flash ]

なんかsatatic constが継承されなくって、どーしてだろう?とか
昨日から悩んでいたのだけど、何のことはないPreloaderでもそのクラスを参照していて、変更が反映されていなかっただけだった・・・・むなしい・・・むなしすぎるぜ
コン畜生

[ Flash ]

さて、現実的に使うためにどーするか?ということを考えてみます。特にProgressionで・・・。

問題点としては
1)共有フォントの読み込みがドキュメントクラスのコンストラクタ前に発動してしまう。
2)ProgressionでRSLを配置するとCastDocumentの"_onInit"がロストしてしまう。
この2点をなんとか解決したいと思います。

2)はloaderInfoの"Event.COMPLETE"がRSLが存在すると発動しないというのが起因しているかと思います。(何故なのか?は不明。そもそもRSLのローディングが管理できないのでどーしていいのやら)
ということで、コチラは無理やり"CastDocument"のコンストラクタに

として、_onInitに連結します。(override出来ないから)

これに関しては諸々調べていますが、問題が発生する可能性があるので、暫定的な処理とさせてください。実際にこの手法を用いる際にはリスクがあることをご理解の上、実装してください。(今のところ問題が発生するものとしないものの2つのパターンがあることは確認していますが、明確な切り分けは出来ていません。)

一応_onInitの重複発動(Preloader経由だと"Event.COMPLETE"が発動するので)防止のために、"onInit"の最初に以下の一文を入れておく。

read more"AS3での埋め込みフォントの共有について:其の伍[RSLの先読み対応 with Progression](多分解決)" »

[ Flash ]

吐き気がしてきました。
apeirophobia: AS3での埋め込みフォントの共有について:其の参[ランタイム共有ライブラリ編](未解決)の続きです。

前回かなり絶望的な結果で凹んでいたのですが、検証続行。

今度は基本に立ち戻り、ストレートに子swfでフォントシンボルをRSL化して、親swfと共有してみます。

1)子swfでフォントをシンボル化して、すべてのプロパティを有効に
090207b.jpg

2)これを親コピペして共有読み込みに。

3)共有化しているフォント名でそのままTextFormat指定。

問題となる親swf上での同一フォントの静止テキストはRSLのリンケージ名を使用して設定すればOK。

これまでのやり方に比べて超簡単。

ただし何故にこれをやらなかったかというと、フォントシンボルは実体が無いため、ドキュメントクラスのコンストラクタ発動前に強制的に読み込みが始まってしまう点。※1

※1
これはそのフォントを使用した静的テキストを含むオブジェクトがリンケージ設定で「最初に書き出し」になっている場合です。逆にどこにも使用されていない場合には明示的にそのフォントを使用した静的テキストを配置する必要があります。(そうしないとembed出来ない)
そしてそれがタイムライン上で認識された瞬間にFlashはRSLを含む子swfの参照、読み込みを開始します。既に認識されている(キャッシュに貯まっている?)場合は読み込みリクエストを出さない仕様になっていると思われます。(そのキーがリンケージURL?)

つまり和フォントとか埋め込んでいたら、3MBとかの外部swfの読み込みが完了しないとLoading表示できない・・・という部分。※2これはユーザに謎の空白の時間を与えてしまうことになりあまりよろしくない。ということでもう少し考えてみる。
少し使えるかもしれないサンプルはこちら。
www.img8.com/src/test_font6.zip

あと少しかなあ・・・。

※2
コンストラクタ前のLoadingを回避する方法としてはそのフォントを含むリンケージシンボルをタイムラインで後ろに配置してそこで実体化させる方法ですが、近年のOOPS化によるリンケージシンボルの増加を踏まえると作業効率的に現実的では無い。業界的にシフトしているPreloader化に従うべきかと。

[ Flash ]

AS3での埋め込みフォントの共有について:其の一の続きです。

子swfのFontクラスを親swfで使用するやり方は便利な面もありますが、先のエントリーに書いたようにコンフリクトが発生する可能性があります。コンフリクトをクリアするには、子swfの中でそのフォントのTextFieldを適応したTextFieldを生成して親に戻してやれば親swf上で表示可能ですが、早い話がTextFormatのテンプレートを内包する必要があり、TextFormatが追加になるたびにデータサイズの大きいフォントを内包する子swfを更新、その都度ユーザに読み込み負荷をかけることになり、本来の目的に則していないことになります。(コンパイル時間の短縮という制作サイドの利点もありますが、あくまでユーザの利点ベースで考えていきます。)

ということで、他のフォント共有方法というと昔からあるRSL(ランタイム共有ライブラリ)のやり方です。昔はこのやり方のほうにフォントのコンフリクトが発生していたのですが、どうもこの一連の検証をしていてフォントの管理方法がPlayer9からクラスベース(リンケージネーム)からFont.fontName(String)に変更されたような感じです。(この辺はapeirophobia: 特定の文字だけを埋め込んだフォントのランタイム共有方法(AS 2.0)に書いているように、Player9からコンフリクトが改善されている)

ということでまぁこなれた手法ではありますが、一応検証。


read more"AS3での埋め込みフォントの共有について:其の参[ランタイム共有ライブラリ編](未解決)" »

[ Flash ]

AS3での埋め込みフォントの共有について:其の壱の続き。
(今朝方一度共有ライブラリでのエントリーをアップしましたが、ちょっとまだ問題あったので削除しました。ハテブとかに登録された人スイマセン・・・。追ってまた整理します)


子swfに含まれるFontクラスを用いたフォントの共有は親swfにそのフォントが含まれていると親側ではレンダリングされないということを書きました。恐らくこれはFontクラスは各ApplicationDoamin内グローバルに定義されており、TextFormat等で使用するフォント名はそのFontクラス自体を参照するのではなく、フォント名からApplicationDoamin内のフォントクラスを逆引きするという仕様のような気がします。(ただまぁそうするとApplicationDomain.currentDomainで動作するのもおかしいか・・)

まぁそんなことを考えても仕方が無いので、解決策を考える。

先のエントリーでは子swf内で生成したTextFieldにTextFormatを指定してやれば、適応が可能だというところまで書きました。んが、まぁ正直使えないので今度はFontの実体化のタイミングの視点からコンフリクトを解消できないか調べます。

つまり、「子swfの中のFontクラスを先に定義してしまう」ということ。具体的には「子swfの読み込み+Fontクラスの実体化が、親swfの中の同じフォントの実体化よりも先に完了するように。」するということになります。

これにはタイムラインを使用します。まず、親swf上の静的テキストを2フレーム目に配置。1フレーム目には共有するフォントを配置しないようにします。
090207a.jpg

read more"AS3での埋め込みフォントの共有について:其の弐(未解決)" »

[ Flash ]

以前apeirophobia: 特定の文字だけを埋め込んだフォントのランタイム共有方法(AS 2.0)というエントリーを書いたけど、今度はAS3版。既出のリソースとしては
FACEs: as3:フォントのダイナミックなローディング
CS3版 フォントのダイナミックなローディング|_level0.KAYAC
あたりが有名なところ。


で、このやり方で読み込む親SWFの中に同じフォントを用いた静止テキストを配置すると、フォントが表示されなくなるという問題がある。これはPlayer8以前に見られたフォントのconflictと同じような状態(詳細はapeirophobia: 特定の文字だけを埋め込んだフォントのランタイム共有方法(AS 2.0))。恐らくフォントクラスが親SWFで先に設定されてしまうことで、外部SWFのフォントクラスが適応されないというのが理由だと思う。(そう考えるとPlayer8の原因とは違うのかもしれないけど)
簡単に検証したい人はCS3版 フォントのダイナミックなローディング|_level0.KAYACのサンプルをDLして、loader.flaのステージ上にAXIS Std Hで静的テキストを配置すると再現できます。


AS3から外部SWFのクラスアクセスはApplicationDomainの設定も絡んできて、ちょっと原因の切り分けがややこしくなっているので、検証してみました。

なんか良く分からない部分もあるのですが、とりあえず忘れないようにダラダラ書いておきます。

read more"AS3での埋め込みフォントの共有について:其の壱(未解決)" »

[ Flash ]

くそーーーーー。こいつめーーー。
なんとかならんのか?!
今のところ八方手塞がり。
ガッデム!

[ Flash ]

AS3になって丁寧にエラーが出てくるようになったが、若干過剰に感じる時もある。
今日は1行コードを追加したら1300行近くのエラーが排出された。
エラーを読むだけでエラーが発生しそうな勢いである。

倍返しどころの騒ぎではない。

死者に鞭打つ
の方が適当だったろうか?

[ Flash ]

サーバ上でのクロスドメインでのSWF連携はこれで出来るんだけど、ローカルからサーバ上のSWFを参照するとこれが引っかかる。getDefinitionとかregisterClassAliasがはじかれちゃうなぁ・・・。

とりあえずSecurity.sandboxType == Security.REMOTEの場合だけサーバを参照するようにして対応したけど、そーゆーものなのかしら??クロスドメイン系はいろんなやり方がある上に、ドキュメントも曖昧なので良く分からないなぁ。


[ Flash, Progression3 ]

Flashには幾つかundocumented functionが存在するのだけど、そのうちの一つ"addFrameScript"。
存在は知っていたのだけど、今まで上手く動作せず、どーしたもんかしら?と放置していた。ちと今回どうしても使いたくなってきたので改めてClassを見てみたらこんな感じだった。

// NON-DOCUMENTED (MANUAL ADDITION)
/**
* Attach a callback method to a frame. Note that this will replace any timeline code or
* previously attached callback.
* The callback method should not expect any parameter.
* @param frame Target frame number (starting from 0).
* @param notify Callback method to attach.
*/
public function addFrameScript(frame:uint, notify:Function):void;

やー (starting from 0).だった。これだけで長い間放置していた・・・汗

ちなみに複数フレームに一気に追加する場合には

削除する場合には

となります。
ちなみにflashguruでは

というような記述がありますが、これは動作確認取れませんでした。


ちなみにProgressionの"ExMovieClip"クラスではループ再生制御のためにコンストラクタで

されているので、ループさせる場合等には1フレーム程多目にフレームを定義しておかないとフレームアクションが上書きされてしまいます。


Ref.FlashGuru Consulting - Undocumented Actionscript 3

[ Flash ]

・extends Arrayのクラス内要素の厳密な型指定
>結局Object化して、配列演算子をブロックする方向に・・汗

・変数のoverride(クラス違い)
>結局子供クラスで定義して、共用メソッドが上にこぼれてくる。

・Static系methodの継承問題
>シングルトン作って、ワンクッション。

いつもここで四苦八苦している気がする。
金なし、暇なし、進化なし。

[ Flash ]

Inheritance -- Flash CS3

この辺ではまり中・・・・。
EventDispatcherのStatic化も面倒だ。
なんか良い解決策は無いかしら?

[ Flash ]

Date - ActionScript 3.0 Language and Components Reference

int定義で演算すると演算結果が無茶苦茶になる。
っつーかなんでNumber?端数出る場合があるのだろうか?
小数点を代入できるっつーことなのか?
カッペむかつく。

[ Flash ]

Proxyとか色々試してみたけれど、駄目だった。
Adobe Flex 3 ヘルプ

うーむ・・・・・。配列演算子を使用しないという前提条件で、代替メソッドを用意するしかないか?
なんかイラッとするなぁ・・。

[ Flash ]

AS2の頃は

To create private values for a shared object--values that are available only to the client instance while the object is in use and are not stored with the object when it is closed--create properties that are not named data to store them, as shown in the following example:

ということで

ということができたのだけど、AS3からはdynamicじゃなくなっちゃってできなくなっちゃった。

まぁ何がやりたいかっつーとJSのcookieのexpireみたいなことをやりたいんだよね。ブラウザのウインドウが閉じられた瞬間に破棄する・・みたいな。そういうイベントがあるのかもしれないけど、displayObject系では今のところ無理そうな悪寒。次回アクセスの際にタイムスタンプから継承するかどうか?っつーのはできそうだけど、美しくないなぁ・・。

[ Flash ]

フルスクリーンモードのFlashから別ウインドウや別タブを立ち上げるとフルスクリーンモードは自動的に解除されます。ただWindows IE6でswfAddressを組み合わせた場合、ハッシュレベルでのURL変化が起こっただけでフルスクリーンモードが解除されてしまいます。

なんとはた迷惑な・・・・。
とりあえずメモ。

[ Flash ]

前回(apeirophobia: Loaderの読み込み強制終了 Loader.close編)の続き。

とりあえず主要なコードは以下のような感じ。
CODE:1

これをプレビュー/ダウンロードシミュレートで実行すると
1:読み込み中にunload実行>読み込み止らず、読み込み完了して表示
2:読み込み終了後にunload実行>表示されていた_loaderが消去
3:読み込み前にunload実行>何も起きない。
といった感じ。closeの時のように例外throwは無い。ということでhttp経由で検証。
1:読み込み中にunload実行>読み込み止らず、読み込み完了して表示
2:読み込み終了後にunload実行>表示されていた_loaderが消去
3:読み込み前にunload実行>何もおきない
という感じで、どうしようもない感じに終わりましたw

つまりunloadは読み込みが完了したcontentLoaderInfoに対してのみ有効なようです。
ということでcloseと組み合わせて使うのが正解のようですが、なんにしてもプレビュー環境で動作が確認できないのでその辺が面倒です。はぃ。

じゃ次はprogression3のCastImageLoader等で同様の処理を行う場合にどするか?(多分ほとんど一緒だとは思いますが)検証することにします。

[ Flash ]

外部イメージのローディング途中で他の処理やシーンに遷移したい場合等、ローディングを任意に中止する部分で現在はまり中ということで検証を時系列的にメモ。

"Loader"クラスには"close"と"unload"という似たようなメソッドが2つほどある。

closeは

Loader インスタンスに対して現在進行中の load() メソッドの処理をキャンセルします。

一方unloadは

load() メソッドを使用してロードされた、この Loader オブジェクトの子を削除します。関連したLoaderInfo オブジェクトの property は null にリセットされます。他のオブジェクトが参照している可能性があるため、子は必ずしも破棄されるとは限りません。ただし、Loader オブジェクトの子ではなくなります。

と定義されている。

とりあえず"close"から検証してみる。
CODE:1

既にこの時点でCLOSEイベントを取得する口が見つからない(汗 EVENT.CLOSEは"Socket","XMLSocket"だけにしか用意されていないイベント。つまり発動したとしても結果を拾えないという謎な感じになっている。

read more"Loaderの読み込み強制終了 Loader.close編" »

[ Bookmark, Flash ]

Aviary - Home
FlashでPhotoshopとか作っている。前に同じようなのをどこかで見たけど、これだったっけな?Peacockっつーのがちょっとステキ過ぎる。Photoshopにもこの機能が欲しいな・・・。

で、問題はこれは将来にどう展開していくのか?がなんとも難しい。
旅行先とかで作業する分には便利そうである。

via.fladdict

[ Flash ]

久しぶりにPV3D触っていますが、Greate White αのときからかなり変わっていて四苦八苦。いきなり"Scene3D"にコンテナ入れてた引数がなくなっていてびびった。完全下位互換無し?昔のやつとかどうすんのよ?修正大変ジャンか。(ってかもうプロジェクト毎にライブラリを保存しておくしかないんだろうけど・・・)

こんなに激しい変化は老人の脳味噌にはハードです。

ちなみにここのドキュメントはもう古すぎて当てにならない。SVNの中に入っているドキュメントが多分一番新しいかと・・。

added 2008/10/22 16:31
最新ドキュメントここにありました。(Papervision 3D 2.0 Beta rev.752)

[ Flash ]

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

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

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

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

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

read more"3種類の円文字" »

[ Flash ]

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

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

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

[ Flash ]

Catherine Zeta Jones Flashed! : Wacky Archives

これが正しいFlash。

[ Book, Flash ]

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

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

[ Flash ]

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

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

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

[ Flash ]

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

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

[ Flash ]

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

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

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

[ Flash ]

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

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

[ Flash ]

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

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

[ Flash ]

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

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

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

ref:AGEIA PhysXブースレポート

[ Flash ]

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

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

[ Flash ]

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

[ Flash ]

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は反映されないということなのだろうか?

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

[ Flash ]

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

[ Flash ]

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

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

[ Flash ]

どーもオデの頭ではイマイチ利便性が理解できない。
まぁすんげー長いクラスとかで用途によってメソッドを分類したりしたいときには便利そうだけど。(クラスというよりも巨大なパッケージライブラリか?)
Namespaces -- Flash CS3

BeInteractive! [Namespace]
ここに書いてある「動作の切り替え」ってのはなんか使えそうな気もするけど、オデの仕事の進め方だとここまできっちりやろうとおもったらinterfaceやらもう完全に出来上がっていて、検証とか終わっているかも知れない・・・汗

なんかクラスを縦断してnamespaceで制御できたりするのかしら?とか思ったけど、importも普通にしないといけないし、ただ記述することが増えたという印象しか今のところ無い。

うーむ勉強しなくては。

[ Flash ]

と思うのはオデだけですか?
なんか方法あるのかしら??

たとえばボタンが2つあってhandlerを同じmethodに引き渡すとして

みたいに書いたりするんだけど、 これ MovieClipがdynamicだからいいけど(独自クラスだったらそれ様の変数を定義しないと) そして 単純な構造だからいいけど(Spriteが入れ子になってたらとか) 普通はこんな簡単なことにはならない。 しかもいちいち変数を定義するのが面倒。 これはイベントドリブンだけの話ではなく、データドリブン時にも同じような不便さを感じる。 (昔自分で作っていたイベントクラスがそういう形だったからというだけなのだけど)

これ

とか出来ないのだろうか??

いや一応

とかすればできるけど、これはまたこれで冗長でなんか汚い。

直感的っぽいのは"flash.events.MouseEvent.CLICK"で生成されるEventに何かしら動的に変数を埋め込むーみたいな感じだけど、この辺やろうと思ったらdispatchのタイミングになるから、EventDispatcherから手を入れないといけないのでヤダ。

いやなんか普通に出来そうな気もするのだけど、こういうことってプログラムの世界ではどういう呼称なのかさっぱり分からないから検索出来なかった。
なんかふつーにできることだったらめっさ恥ずかしいんだけど・・・。

read more"addEventListenerで一緒に引数を渡したい" »

[ Flash ]

ちとplayer9になってルールが変わったのでその辺少し整理しておく。
これはまだAS2の話なのであしからず。

Player9からはこれまでの禁則が緩和され簡単になっている。
やり方は以下のとおり

  1. 本体のFLAを作成。名前を"main.fla"として"main.swf"を書き出すようにする。
  2. フォント埋め込み用のFLAを作る。仮に名前を"share.fla"として"share.swf"を吐き出すように。
  3. share.flaの中に"share"というMovieClipインスタンスを作る。
  4. その中にtextFieldを作成し、埋め込みたいfontで埋め込み文字を設定する。ここでは"ヒラギノ角ゴ Pro W6"で"あほでまんねん"と埋める。
  5. "share"インスタンスを共有書き出しする。ここでは"share"というlinkage nameで、share.swfに書き出す。
  6. main.flaのライブラリで新規シンボル作成。名前を"share"として「ランタイム共有用に読み込み」としてURLに"share.swf"を設定。それをタイムラインに配置。
  7. main.flaに以下のスクリプトを書く
  8. 埋め込まれているfontは"あほでまんねん"なので、main.swf上では"あほちゃいまんねんばかでんねん"ではなく"あほまんねんでんねん"と表示される。(別にstage上に配置されたtestFieldにsetTextFormatでもよいけど)

これまでは同じswf内に同名フォントで設定されたtextFieldが存在していたりするとconflictしてどちらかが表示されないという問題があったが、Player9で書き出しを行えばその辺クリアになっている感じ。

まだplayer ver8で作らないといけない場合は、また話が少しややこしくなる。
fontのconflictが発生するために同じfont nameのtextFieldが使用できなくなる。

conflictの簡単な特徴としては以下のような感じ。

  1. 同じswfファイル内で静的、dynamicTextFieldでlinkageされたものと同じfont名のものが存在すると、先に出てきた方が優先され、あとのTextFieldの文字がレンダリングされない。
  2. ただし外部swfのなかでembedすることは可能。親のconflictの影響は受けない。ただしそのswf内でも前述のconflictの条件は存在する。
  3. attach等をおこなってもconflict条件の対象になる。

といったところ。なのでこの条件が無ければver9と同じ設定で実装は可能。(なはず)

font setとして外部linkageする場合にはlinkage font nameを本来のfont nameと異なる名前にして設定することでこの問題を回避できたのだけど、TextFieldへの特定文字の埋め込みの場合font nameの設定を行う術が無い。

簡単に対応しようと思えば、同じfont nameのものを配置しない。ということになる。 つまり静的TextFieldの文字などをアウトラインにしてしまえばよい。ただ後々修正が入る可能性などを考えるとアウトライン化は避けたいところ。

ではどーするか?
まぁ今更使うこともないだろうけど、一応自分のためにもメモしておく。

read more"特定の文字だけを埋め込んだフォントのランタイム共有方法(AS 2.0)" »

[ Flash ]

式を作るのに四苦八苦・・・汗
歳だなあ・・・・

つーか入れ子過ぎる。
ちょっと整理しよーっと。

[ Flash ]

URLVariablesのdecodeの際に発生するエラー。

2101 The String passed to URLVariables.decode() must be a URL-encoded query string containing name/value pairs.

これを一体どこで拾えばよいのか?分からなくてしばらくはまってしまった。

URLLoader - ActionScript 3.0 Language and Components Referenceを見ていると、明確に取得する方法はなさそうな感じ。サーバとのやり取りの型には問題は存在しないという前提条件で、あとは"HTTPStatusEvent"でサーバエラーかそうじゃないか?を判断すると・・・いうことなのか・・。
(でもHTTPStatusEventでエラーがおこったからと言ってEVENT.COMPLETEをスキップするわけでもなさそう)

これはどうかなー。微妙だ。
URLLoader.dataFormatの設定は逆にリスキーじゃねえ??
これだとURLLoader.dataFormatは指定しないでEvent.COMPLETEハンドラーの中で
new URLVariables
してtry,catchしたほうが確実ってか?
おかしーだろ、じゃdataFormatなんてイラネーじゃねえか。

tryありすぎ・・・多段になっちゃうヨ(書き方がまずいのか?)

っつーかHTTPStatusEventのプロパティがIOErrorEventとかと違うから、一括して単純にエラー処理にまわせない。statusとtextを分岐処理すれば良いだけだけど、面倒なんだけど。せめてstatusとtextを両方に用意しておいてもらいたいと思うのはオデだけですか?
え?event丸ごと投げろって?
まぁそれでもええけど。

[ Flash ]

地味にややこしい!
解決策が見出せない!
ふがっ!

[ Flash ]

apeirophobia: mx.utils.Base64Encoderでバタバタやっていましたが、nutsuさんのお力添えもあり、無事実装できましたので一応ご報告。

TASK
URLVariablesの中に普通のString等と一緒にByteArrayで構造化した情報を突っ込んで送ることができるか?またそれをサーバから再度読み込んで復元できるか?

PROCESS
1)Base64エンコーダを探すの巻
ByteArrayの送信の際にBase64でエンコードする必要があるので、その辺のクラスを探してみる。corelibのSHA256クラスの中とかにmx.utils.Base64Encoderというクラスの存在が確認できるのだが、そんなものはどこにも無い。ということで最初はhttp://crypto.hurlant.com/のcom.hurlant.util.Base64クラスを使って実装。一応これでも動く。
ただし開発が去年で停止しているのとcorelibの中にもcryptoパッケージが移植されているので、できればmx.utils.Base64Encoderで実装してみたいということでモソモソしてみる。

2)Base64Decoderでエラーが出るの巻
nutsuさんからFlex3 SDKの中に入っているという情報を頂き、喜び勇んでゲット。しかしvar bde:Base64Decoder = new Base64Decoder();を行うと

が表示され動作しない。

3)Base64Decoderのエラーを回避するの巻
nutsuさんの環境では動作するということでしばらくググッてhttp://bugs.adobe.com/jira/browse/SDK-12205#action_178148に到達。
ということで以下のスクリプトを追記。

これでエラーは出なくなった。

read more"ByteArrayで変数をサーバに送信するの巻" »

[ Flash ]

おう、これはどこにあるんだよ?!
ねえじゃねえかよ!!
Flex3買わねえといけねえのかよ?!

[ Flash ]

なんか方法ありそうな気がするのだけど、うまくいかないので書いてみる。

以下のようにbinaryでLoadするとして,

これをMovieClipとして利用するのにはEvent.COMPLETEでバイナリを格納。(実際使っているときはバイナリ管理のクラスをつかってますが)
で、実際addChildする際には
っつー感じなのですが、これをたとえば"ahoaho"クラスとかに割り振って
とかでインスタンス化できるようにできんのか?っつーこと。

いや別にloader使ってaddChildでもいいのだけどさー。
なんか出来そうな気がするのだけど、うまく割り当てが出来ない。

read more"BINARYでloadしたSWFとかをClassに割り振れないのか?" »

[ Flash ]

なんだか変なトラブルばかり起きている今日この頃です。

今作っているものが親swfから外部の子swfを読み込むものなのですが、
なんかしらんけど、Firefoxで子供のswfが表示されないというトラブル。

IEは問題なく表示されサクサクと動いております。
Firefoxでは一応読み込みは出来ているようなのだけど、表示されない。

他のダミーファイルを読み込むと表示される。
なーんでだ?!

処理速度の問題でつか??
うーん、どうやって問題を切り分けていくか非常に悩ましいな・・・。

しかしこれの解決にまた朝までかかるのか・・・?
やだなあ・・・。

[ Flash ]

オデのためのオデによるブログ "apeirophobia"です。

さて
TweenerでaddCallerを途中で解除したいぜ!というときにどすればええのん?
という質問をされたので書いておきます。

addCallerの場合はproperyが設定されていないのでオデはざっくりと

で対応しています。

ただこれだとその要素に対して設定されているすべてのTweenが削除されてしまいますが・・。
オデは基本的にaddCallerを停止させるときはremoveのタイミングで、他のモーションも一括で削除することが多いからそんなに不便さは感じていませんけど、まぁ個別に細かく制御したい場合はaddCallerを割り当てるためのSprite(Shapeでもいいのかしら?)を作ってそこで管理するって感じですかね?

そうする場合の注意点なのですが、

read more"TweenerのaddCallerをクリアする" »

[ Flash ]

ここ数日色々やってきましたが、
apeirophobia: Loader.removeChildapeirophobia: 外部swfの削除はLoader.unloadは使わない方が良いんじゃないかという件


Loader.unloadの処理にミスがありました・・・。(恥ずかしい・・・)


apeirophobia: Loader.removeChildの方でテストしていたスクリプトで

となっている部分。これunloadでlodar.contentsが非表示になるのでうっかりしていたのですが、loader自体がremoveChildされていませんでした・・・orz。 ということで
としてもう一度検証してみました。 以下その結果。

read more"外部swfの削除はLoader.unloadは使わない方が良いんじゃないかという件に誤りがあった件" »

[ Flash ]

延々と検証をしてきましたが、なんかLoader.unloadは使わない方が良いのではないか?という結論に至りました。既出だったらスンマセヌ。

追記:06-Apr-2008 20:55:08
以下の検証には誤りがありました。
正確な検証結果はapeirophobia: 外部swfの削除はLoader.unloadは使わない方が良いんじゃないかという件に誤りがあった件を参照してください。スイマセン。

やり方としてはunloadを使う代わりに、removeChildを用いる。
で、子供の方でEvent.REMOVED_FROM_STAGEをlisten。
これをキーにしておけばネストしている子供に対しても一気にremove処理が適応できる。
で、それぞれの子供の中でTwennerやらEventListenerを掃除するprivateメソッド組んでおく。
(当然removeのメソッドの中ではEvent.REMOVED_FROM_STAGEもremoveする)

これで前にやったapeirophobia: Loader.removeChildと同じ検証をしてみた。
結果は以下のとおり。

read more"外部swfの削除はLoader.unloadは使わない方が良いんじゃないかという件" »

[ Flash ]

何故エラーになるか?

Error: Error #2069: Loader クラスは、このメソッドを実装しません。
at Error$/throwError()
at flash.display::Loader/removeChild()

DisplayObjectContainerを継承してるんじゃないのか??
ちゃうのか?
俺がまちがっとんのか?
あーあーあー。
あほう。

追記:06-Apr-2008 20:55:08
以下の検証には誤りがありました。
正確な検証結果はapeirophobia: 外部swfの削除はLoader.unloadは使わない方が良いんじゃないかという件に誤りがあった件を参照してください。スイマセン。

read more"Loader.removeChild" »

[ Flash ]

AS3マジでメモリの開放がめんどくさい。
外部swf入れ替え系はまぢでうっとおしいな。
なんか手っ取り早い方法はないんか。
作れってか?
あーあーあーあー。

[ Flash ]

先日エントリーしたDebuggerをちょっと変えました。
基本FPS計測はOFF。でFPS表示の前のボタンをクリックして計測開始、再度クリックで計測中断。ただこれによって一度増えたメモリ消費が下がるのか?はまだ完全に検証できていません・・。(もともとがあまりに微小な値なのでかなり長時間回して検証しないと良く分からん)あとはグラフの幅だとか、レコードする個数とかプロパティを設定できるように。(普通はさわらないだろうけど)

read more"img8.debug.Debugger" »

[ Flash ]

ちょいとデバッグ用に使用メモリとFPSを表示する"debugger"クラスなるものを作ってみた。
で、色々試していると、FPSを算出するためにEvent.ENTER_FRAMEをまわしているだけでメモリが4KBぐらいずつ浪費されているっぽい。Event.ENTER_FRAMEのhandlerに渡されるeventをnullにしてみたりしたのだけど変わらない。

メモリ変移を描画するために(ダブルクリックでグラフ表示)時間を取得しているのだけど、それの桁が増えるからその分のメモリが浪費されているのかと思ったのだけど、どーもそうではないらしい。(メモリのチェックはTimerで行っている。)Event.ENTER_FRAMEのhandler内でフレームカウントさせている変数を変化させず、中を空にしていても増加していく。(微々たる量だけど)で、Event.ENTER_FRAMEをaddしなければ使用メモリは増加しない。(つまりメモリーチェックの方の関数系では特にメモリーは増加していないということになるかと・・。)

これはクリアできないものなのでしょうか??


read more"Event.ENTER_FRAMEをしているだけでメモリが浪費される??" »

[ Flash ]

昨日から諸々うにゃうにゃやっていたものを晒してみます。
突っ込みどころ満載だと思いますが・・・汗


目的は
・stand aloneモードなのかcomplex mode?なのかで動作を切り分けたい(開発過程において)
・as2で言うところの_rootを取得したい。
・実行環境がサーバ(http or https)かローカルなのかを取得したい。
・DisplayObject以外でもstageを参照したい。
と言うところ。


使い方はDisplayObjectで、

といった感じで実行すると、そのDisplayObjectの含まれるswfが最上位である場合rootとstageが格納。それ以降読み込まれた外部swfでisRootがcallされてもreject(多分)。


ただし一番親のswfでisRootが実行されていないと、errorをthrowします。
なので、とりあえず一番親になるswfでは実行必須になってしまっています。
(ここを子供からでも解決できるように悪戦苦闘していました)


用意されているmethod,propertyは以下のとおり。

isRoot(displayInstance:DisplayObject):Boolean
displayInstanceがrootに相当するか否か?相当する場合Documentクラス内にrootとstageが定義されます。親であった場合true。

root:DisplayObject [read-only]
最上位のdisplayObjectを戻す。

stage:Stage [read-only]
ステージクラスを戻します。一応これ経由でlistener登録、削除できますので、DisplayObject以外でonResizeを取得することも可能なはず。

url:String [read-only]
最上位のswfのURLを戻します。まぁ特に使うことはないかと。

isLocal:Boolean [read-only]
動作環境がローカルかサーバ上(http or https)で動作しているか?これでローカル開発モード、サーバモードの切り替えなどを行えるかと・・。

っつーようなかんじです。理想は親swfでisRootしないで、子swfから実行してもroot,stage,urlなどが取得できるのが理想なんですが、うまくいかない・・・。出来そうな気だけしているのですが、実力が追いついていません・・。

read more"img8.Document" »

[ Flash ]

勘違いなのかよくわからないのだけど、
mother.swf
child.swf
という二つのSWFがあって、mother.swfがchild.swfをloadするとします。で、このときにchild.swfの方で
trace(this.stage.loaderInfo.url)を実行するとmother.swfのURLが出てくるのだと思っていたのだけど、なんかちょっと予想していない結果になってはまり中。


たとえばmother.swfに

とすると両方とも"motehr.swf"の値が出る。これは問題なし。

続けてmother.swfからchild.swfを読み込みルートタイムラインにaddChild。
で、child.swfの中で

を実行すると両方とも"child.swf"となる。 (期待していた値はL1="child.swf",L2="mother.swf")


ただし、読み込む前になんかしらスクリプトを実行したりすると(明確にそれが何か不明だけど、今作っているカスタムクラスを定義すると)きちんと(L1="child.swf",L2="mother.swf")の値がでる。


なんか根本的に理解が間違っているのか?


read more"this.stage.loaderInfo.url" »

[ Flash ]

お前はルー大柴かっ!!
とAS3に対して毒づいてみる。

[ Flash ]

ちとプレビュー前でばたばたしているので走り書きだけど、たとえばプリロードみたいなやり方で、メインコンテンツを先に展開しつつ、後追いで優先度の低い埋め込みリンケージサウンドなんかを実体化させる場合、スクリプト内で"getDefinitionByName"を使って定義しちゃうと、実体化の前に定義できてしまう。(try,catchでも一応定義はされているということでスルーされてしまうっぽい、そもそも定義自体がされていない場合はReferenceErrorをcatchできます。)

生成されたサウンドクラスは値はnullにもならず、よく分からない空の状態で定義されてしまって、soundChannelとかsoundEventでエラーが連発して悲惨な状況になる。

なので実体化されているかどうか?の確認は

みたいな感じになるかと・・。 非常に厳密にエラー定義がされている割には、この手の抜けっぷりが非常にうっとおしいですな。実体化されているかどうか?もcatch出来るようにしてくれれば良いのに・・・。

もちっとローディングの分散の手法はAS3で的確な方法があるのかもしれないが、まだAS2との折衷みたいな段階で煮詰め切れていない。

今一つ使っている手法としては、でかいサウンド系は外部SWFファイル埋め込んでおいて、

の定義をしておいて、Event.COMPLETEの発動=実体化として認識してしまう形にすれば、getDefinitionByNameでReferenceErrorを取得することは可能(なはず)。

取り急ぎメモ。
間違っていたらゴメン。

[ Flash ]

サウンド消失系の処理で、フェードアウトとかかけるとかなーりいやな感じのエラーがでる。
かといっていきなりstopをかけると「プチ」って小さい音が聞こえるんだよなあ・・・。
いやだなあ・・

[ Flash ]

まだ検証中なのだけど、ShadedMaterialをMaterialsListで個別の面に割り当てるとエラーになる。
"all"の場合は問題ない。なんだ?(ちなみに元マテリアルはMovieAssetMaterial)


>とりあえず他のshaderをはずして、他のマテリアルで検証。
簡単なところでBitmapFileMaterialあたりから。

[ Flash ]

これもしかしたら簡単にできるのかわからないけれど、質問。

"hogehoge.fla"というFLAファイルにはデフォルトで"hogehoge.swf"という名前が付くんですが、ここに自動的に"swf/"ってフォルダを定義することはできないんですかね?

この辺の設定ファイルは
C:\Documents and Settings\User\Local Settings\Application Data\Adobe\Flash CS3\ja\Configuration\Publish Profiles\default.xml
にあって、この中の

<flashFileName>名称未設定 - 1.swf</flashFileName>

になるのだけど、ここに"swf/"を入れても適応されないですね。
ディレクトリ設定をプロファイルには定義できないもんなんですかね?

そもそも公開用SWFを"/swf"に、検証用SWFを"/dev"に切り分けたいとか、プロファイル切り替えだけで対応できないか?っつーところの話なんですが・・・。

[ Flash ]

やっとこGridクラスの改変が終わった。
なんつーかRectangleクラスは使いやすいのか使いにくいのか微妙だ。
正直なところ欲しいのは基準点を保持しているグリッド情報なのだが、その辺をRectangleだけで済まそうとして今矛盾を抱えた状態になっている。これはなんかなんとかしたいなあ・・。・

あとはDisplayObjectじゃなくっても構造配列の重複チェックは、フラグチェックより、フラグの状態をRectangleとかBitmapでグラフィックにしてintersectionとかで判定したほうが早そうな気がした。
いや厳密に検証しているわけじゃないからアレだけど。

たとえば母体を毎回全走査するよりも、ビットマップのピクセルを加算して塗りつぶして、それと比較みたいなほうが効率よさそう(いや内部では同じかもしれんけど)、しかもチャンネル使えば1px*1pxの中に色々な情報を色を用いて埋め込める。(でそれの乗算とか制御した結果もきちんと意味がもてれば結構最強)
ただこっちの方法だとビットマップのサイズ上限(2800px)がグリッドの上限になる。つまり8294400グリッドが最大グリッド範囲になる。まぁ実際ここまで大きな状態のグリッドを取り扱うか?と言われると無いような気もするが、なんかそんな忘れるかもしれない制限条件とか抱えたものを作るのもどうかしら?みたいな。

いやもう頭全然回ってない。
多分後日自分でみても理解できない気がする。

今日は昼から打ち合わせだ。
少しは眠りたい。

[ Flash ]

もともとBGMで使用するサウンドファイルがでかいので、共有ライブラリにして外部に持たせておこうと思ったのが始まり。で、AS2はもうパッケージにしていたのだけど、AS3でどーやって実装しようかと色々試しているうちに、別に共有書き出しとかしなくっても普通に共有できた。(昔からだっけ?忘れた)
昔は一度タイムライン上に出現(これはMovieClipを作って1フレ目でstop&visible=falseにして、それ以降のタイムラインにサウンドを割り当てて、とかやるアタッチ系プリローダーの手法ね)させないとattachも出来無かったと思うのだけど(違う方法があったらゴメン)、それすらもしなくて良いと言う、超お手軽になっていた。大量の外部ファイルでの連携を必要とするコンテンツには便利だ。

ということでメモ。

肝のクラスは
flash.system.ApplicationDomain;
flash.system.LoaderContext;
の二つ。

たとえば外部SWFに埋め込んだサウンドクラスを引っ張り出したいときは

で、あとはEvent.COMPLETE発動後にそのクラスを引っ張り出してやれば良い。 (音の処理のところは面倒なので書かない。) これと同じ手法で、イメージ、ムービークリップインスタンス、クラス等も利用可能だと思う。 ただし注意点としては同じクラスが重複しないようにすること。(同じクラスが存在する場合オーバーライドはされないけど、子供のクラスは使えない)

* All code in a SWF file is defined to exist in an application domain. The current domain is where your main application runs. The system domain contains all application domains, including the current domain, which means that it contains all Flash Player classes. * All application domains, except the system domain, have an associated parent domain. The parent domain for your main application's application domain is the system domain. Loaded classes are defined only when their parent doesn't already define them. You cannot override a loaded class definition with a newer definition.

ちなみにこんなことも出来る。

read more"外部swfのクラスを親swfから使う。" »

[ Flash ]

360° Video with Papervision3D
前に書いたような気もするけど、一応メモ。

[ Flash ]

最近良く思うのだけど、comとかorgとか頭につけてけど、これってそのままドメイン名からいくって方向にならないのかしら?最近その下に複数のリポジトリが出来てて管理しにくい・・・。

特にPaperVison3Dのversion1系とGreatWhite系。
あれ思いっきりクラス名被ってるじゃないですか。

ってみんなそれぞれクラスパスを分けて管理してるのかしら?
いや、ドメイン名にしてもするんだけどさ。
http://code.google.com/p/as3corelib/
とかもう直接汎用クラスライブラリに入れたいじゃないですか・・。
もうそれなら
com.adobe
とかじゃなくて
adobeで良いじゃん。
駄目?
comパッケージって意味なくね?

そんなこたーないですか?
そうですかそうですか・・。

いいよ、自分のクラスは
img8パッケージにするから。

[ Flash ]

ちょいとメモ。

Loader.content(もしくはLoaderInfo.content)の抽出に悪戦苦闘。
cloneの必要があるのかと思ったがどうもそーでもないっぽい。BitmapDataではなくBitmapらしい。そもそもLoader自体がDisplayObjectのサブクラスだから、そゆことをしてはいけないのかもしれない。

Shape for a "canvas" for drawing content on-screen. In particular, if you want to create an instance for drawing shapes on the screen, and it won't be a container for other display objects, you'll gain significant performance benefits using Shape instead of Sprite or MovieClip.

A loaded image will be a Bitmap instance.

A loaded SWF file written in ActionScript 3.0 will be a Sprite or MovieClip instance (or an instance of a subclass of those classes, as specified by the content creator).

Sprite if the object will be created using only ActionScript, or as the base class for a custom display object that will be created and manipulated solely with ActionScript.

If you are creating a class that will be associated with a movie clip symbol in the Flash library, choose one of these DisplayObjectContainer subclasses as your class's base class:

* MovieClip if the associated movie clip symbol has content on more than one frame
* Sprite if the associated movie clip symbol has content only on the first frame


話はずれるが、
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/

http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/js/html/wwhelp.htm
って一つにまとまらないのかしら?
タブブラウザだと切り替えがめんどくさい。(ウインドウ一つ追加すればいいだけなんだけど)

[ Flash ]

AS3にmx.data.binding.ObjectDumperに相当するものはないんかい?

[ Flash ]

今まで独自で拡張したXMLクラスでXMLの処理をしていたのだけど、まぁ世の中の時流にのってみようと思い、E4X(PDF)に手を出してみた。

で、はまった。

たとえば

こんなXMLを読み込んだとしてitemノードのattributes名が不確定の場合、これまではこのノードのattributes(Object)を取得してfor in でぶん回せば属性名と属性値を取得できたのだけど、E4Xで取得したXMLListだとちと違う。 たとえば
これだと
っツー感じ。つまりObjectではなくなんちゃってArray(lengthも使えるのだけど、プロパティでは無くmethodになってる) ということで名前は"name"でList内に格納されているのだけど、これがまた何故かmethod(いや、XMLを走査するわけだから何故かでもないんだけど・・。) ということで正解は

で疑問なのはこのやり方は早いのか?っツーことぐらいかな・・・。
Objectに一度変換してとり回しした方が早いようなきもするけどAVM2だと関係ないのか?
(setter使ったって実質内部でmethodな訳だし変わらない?)
なんかこれやるんだったら、value()とかのメソッドがあるとオデの頭では理解しやすいのだけど、まぁノードも属性も一括で管理しているから、その辺でのつじつまなんだろうな・・。

まぁこれまで使ってきたものとあまりに使い勝手が違うのでまだ違和感あるけど、
ノード名、属性名などがきちんと分かっている情報に対してのアクセスはとても簡単。
判定条件を内包できるもの素敵です。

最近JSONばっかりで、久しぶりにXMLを触ってはまったっつーことで、とりあえずメモ。


あ、ちなみに
var _attr = myXML.item[0].attributes();

var _attr = myXML.item[0].@*;
でもいいです。こっちで書くとなんかかっこいい気がする。

read more"EX4はまった" »

[ Flash ]

com.adobe.serialization.json.JSONで処理する際には改行コードはLFで・・・?
StringにignoreWhiteSpaceみたいなんはないんか?
つくらなあかんのか?

まぁ正規条件あるから簡単には出来るだろうが、これくらい用意してくれていてもよかろうもん・・。

[ Flash ]

PV3Dのcameraにはrollプロパティは無いのか?

[ Flash ]

PV3Dには無いのかしら??

一昨年イエカキを作ったときに作った3Dクラスには力技でつけたんだけど、AS2だとQuaternionの逆算部分の処理が重くてリアルタイム処理が厳しかった。(結局初期化の際に、全部変換させている)
多分この算出にはWorldとCameraの情報が必要なので(もううろ覚えだ)両方の情報を保持しているクラスみたいなのがあるのかな?

あのクラスにはカメラのObject traceや、Stage>World変換(Camera変換も)など3Dソフトの機能を付けたのだが、実際は計算処理が重くてほとんどダイナミックに動かせなかった・・・。(一応WorldとCameraと内部のObjectを動かしているけど、ある程度座標値は指定範囲内に収まるようになってるはず)

自分で作ると好きなように色々できて便利だけど、PV3Dのモデリング部分とか見てたらもう一人で作るとかとても無理。

多分スクリーン>ワールド変換ってどこかにあるんだろうけど、深すぎてまだ探しきれてない・・・。
ふあ・・。

read more"スクリーン座標からワールド座標算出" »

[ Flash ]

以前にBeInteractive!さんが書いていたAS2のストリングからクラスのインスタンスを作るはAS3ではどーなったのか?
ということで、書いておく。

これは前のエントリー。loadBitmapの延長線上にあります。
つまりライブラリにある画像をクラスに割り当て、BitmapDataとして取得する際に、画像のクラス名を変数として処理しないと正直使えないぜ!ということです。

わかりやすく言うと、ライブラリの中に"photo1","photo2","photo3"...と画像が存在して、それぞれにクラスが割り当てられていたとして、インスタンス初期化の際にすべてクラス名を定数で書いていたらif分の嵐。10個ぐらいなら耐えれるけど、100個とかあったり、可変したりしたらどーすんだ?と・・。
(まぁでも総数はどっちにしてもスクリプトに記述する必要はあるのだけど)

ということで調べてみました。
AS2のときはものすごい技が必要でしたが、AS3はその辺ツールが用意されていました。
getDefinitionByName ()

使い方は簡単。

こんな感じ。 一応"getDefinitionByName"で戻ってくるのは"パラメータで指定したクラスのクラスオブジェクトへの参照"なので、"as Class"でクラスに定義してあげます。(多分これをやらないと、型指定無しで使えないと思う)

最初

とかやったんだけど、激しい勢いで怒られた。 asはそんなに万能ではないようです・・・。 うっとおしい。

PS
あ、コードはimport全部してないからbitmapとかは自分でimportしてください。

[ Flash ]

もういまさらAS3の初期の話なんて恥ずかしくて書くのもあれなのだけど、一応自分のために書いておく。

AS2ではリンケージを設定したライブラリ内のビットマップをloadBitmapでビットマップデータに割り当てることが出来た。ただAS3からloadBitmapは消滅している。(そもそもリンケージと言う概念が無い)

ではどーするのか?
簡単なのはMovieClip(sprite)を作って、その中に画像をおくのが簡単。
しかしまぁ画像分MovieClip作るのかよ?って話は面倒なので、ビットマップを直接参照するようにしてみる。

080221a.jpg
まずライブラリに入っている画像ファイルをリンケージさせる。
リンケージプロパティダイアログで「識別子」はdeadしている。
クラス名の部分にはそのままだと画像のファイル名が入る。(aaa.jpgとか)
で、基本クラスは"flash.display.BitmapData"。

一応aaa.jpgとかでも参照できるのだけど、他のクラスとバッティングする可能性もあるからなんか画像用のクラスを割り当てる名称に統一しておいた方がトラブルは無いかも。(注釈のHTMLタグってなんだ?)

ということで一応"photo1"というクラス名にしておくことにする。

で、このクラスファイルは特に明示的に生成する必要は無いので、そのままにしておく。
で、これをBitmapDataとして取得するには。

var bmp:BitmapData = new photo1(0, 0);

ってな感じ。
ここでBitmapDataのコンストラクタの引数width,heightは形式上0,0を指定。ここにはまった・・・。

わざわざリンケージした画像のサイズを書かないといけないのかと思って、そんなあほな話があるかぃ!と・・・。ただ指定しないと怒られるし・・・。ということで悪戦苦闘してしまった・・・。
0,0指定必須じゃなくてNullを許容しておいてくれ・・・・orz。

一応0,0を指定したとしても内部的に割り当てられた画像のサイズに追従してサイズが定義される。
あとはステージに表示させる際にはBitmapを定義してaddChild。

var _bm:Bitmap = new Bitmap(bmp);
this.addChild(_bm);

こんな感じかな?

本当はこれは検証のために外部読み込みの画像を内部において簡単にテストしようとおもってはじめたことなのだけど、なんか非常に面倒だった・・・。時間もったいない。

[ Flash ]

PV3DでビットマップマッピングしたCubeを100個作ってぐるぐる回していたら
オーサリング環境がクラッシュする・・・・orz

[ Flash ]

AS2では表現的に難しそうだと言うことで、PV3Dに急遽切り替え。
InteractiveBitmapFileMaterialへのボタンイベントの割り当てに嵌る。
とりあえずinterfaceで拡張してフガフガしてみる。

が、実装してみたら激重・・・。
やっぱ200個近くの外部イメージをマッピングしたオブジェクトを動かすのは難しいですか?
そうですか・・・。
そうなんですかーー。

ぐはぁ・・・。
どーしたもんかねえ・・この要望は・・・。

[ Flash ]

ActionScript最適化 多分その1 ガベージコレクタを攻略する My life as an APE

メモメモ。
おそらくゲームプログラマの方ではないかと思うのですが、ここまで詳しく調査している資料は見たことが無い。すごいです。

奇しくも同じサイト名だが、レベルには雲の上と石の下ぐらいの差がある。

[ Flash ]

そうかWEBカムってインターレスしてるのか・・・。
となるとcompareするにはインターレス除去のために1ラインずつの処理をしなくちゃならんということか?
ぬはーめんどっちい。
ってFlashのfpsにインターレス速度がマッチしてんの?

予想外の展開だな・・。

[ Flash ]

FLAファイルの挙動がおかしい。
書き出しの状態がストリーム再生しなくなってしまっている。
Loadingすら全ファイル読み込まないと表示されない。
なんだ?
コワイコワイ。

read more"SWFをすべて読み込まないと再生されない" »

[ Flash ]

[shirotokoro » AS3 3D Physics Engine : WOW-Engine]
(http://seraf.mediabox.fr/wow-engine/as3-3d-physics-engine-wow-engine/)

Sandyベース。Collisions と physical reactionsはAPE。
強烈。しかし少し重たい。当然と言えば当然だけど・・。
すごいな段々3Dソフトの域に達してきたぞ・・。

問題はこれで人間が上手に操作できるものを作れるか・・・汗

via:fladdict@Twitter

[ Flash ]

今やっている案件でPolar coordinateをやろうと思ったのだけど、ちらりと世の中に出回っているリソースはほとんどがgetPixel32,setPixel32での力技。

衝撃的だったのは直接srcBMからgetPixel32してsetPixel32しているやつ。
これだと変換後の絵がかなり汚い。(瞬間としての一コマの絵ならありなのだけど)

通常はdisplacementmapのtexture mapをsetPxel32でDrawしているタイプ。
(初回のマップ生成には若干計算時間はかかるだろうけど、2回目からは軽い)

ただこれでもやっぱ汚い・・・。
特にpolar系のような変位量の多くなるパターンでは目も当てられない。(満遍なく汚いw)

変位乗数の母数がカラーチャンネルだから、256階調しかないっつーのが問題なのかもしれんが・・。
(これって-256からもで512だっけな?忘れた)

おそらくPhotShop等の画像処理ソフトの中では上記のような計算をしつつ、
その出力結果に対してConvolutionFilterを適応しているのだろうけど、とりあえずそこまで負荷を毎フレームかけるのは無理ッス。

ということで一度このやり方での実装は挫折して、アナログな実装に切り替えます。
はあー。

[ Flash ]

いやね、FlashDevelopのCtrl+Qの割り当てをアプリケーション終了にassignしたんだけど、この部分はやっぱりデフォのcomment lineがスマートかなと思い戻そうと思ったら、どーやって戻すのか思い出せない。
というかどーやって割り当てたのかが思い出せない。

Local Settings\Application Data\FlashDevelop\Settings

以下のファイルのどれかに定義したような気がするのだけど、そんな記述が見つからない・・。

普通に考えるとMainMenu.xmlに記述するようなものだが、ここでは
shortcut="Control|Q"
は普通にcomment lineに割り振ってある・・・。

これどっか別の場所でKey assignなんてできたっけ?

[ Flash ]

Flash CS3にアルファ付で書き出されたPNGファイルを読み込むと
実際のサイズが320*230なのに、Flash上では
w = 878738.4px
h = 651967.2px
というとんでもないサイズになる。

このPNGファイルは3Dソフトからシーケンスで吐き出されているのだけど、
何かその辺に原因があるのだろうか?
謎過ぎるというか、非常に困る。

[ Flash ]

ちょっとスクリプトではなく開発環境の件になるのですが、
FlashDevelopを使っている人はフォントを何に設定していますか?

私はVerdanaを使っているのですが、これだとFlashDevelopでは日本語が文字化けする。(SEPYは日本語は別で処理してくれていたのか、Verdanaと日本語の併用が可能だった)

ググって見るとMSゴシックとか使っている人が多いみたいなのですが、正直MSゴシックはしんどい。
SH G30-Mとか試してみたのだけど、やはり疲れる。(10pt以下なら見栄えもいいのだけど12ptとかだと文字バランスが厳しい)

で、今かろうじてOsaka等幅を設定して使っているのですが、これもちと疲れる。

やっぱ希望はVerdanaみたいなみっちりした日本語フォント。

プログラマの人とかでスクリプティングにはやっぱこのフォントだろ?!見たいなのがあったら教えて欲しいワン。

メイリオとかって楽だったりするのかな・・?

[ Flash ]

PC上での計算は乗算の方が除算よりも効率的だというのは、なんとなく知っていて、
200/100
より
200*0.01
の方が良かろうと思っていたのですが、
ちとAS3で色々試していると(Loading系)

みたいな事をやっていたのですけど、これでやってると
ってなかんじで誤差が出てしまう。

read more"誤差" »

[ Flash ]

AS3ではpackageの外でも変数やら関数やらクラスやら定義できるのだけど、package内部と外部ではそれぞれimportを行わなくっちゃいけない。これって同じクラスファイルの中で2回importしている訳なのだけど、なんか問題とかあったりするのだろうか?

いや、別にpackage内部の関数にしてもいいんだけど、staticなconstractor(表現は微妙です、つまり1度しか発動させたくない関数があるとかそゆこと)な感じで処理をしたいときにpackage外に書くと楽チンなのかな・・・って。

package内部に記述した場合は何かしらフラグを立ててそれをif判定して切り分けっつー感じになるんだとおもうんだけどね。効率(ほぼ無意味ではあるが)を考えたらpackage外部かしらと・・・。

read more"packageの外に定義した関数やらクラスやら" »

[ Flash ]

AS3でFlashVarsをJSONに変換して処理しようと思っていたのだけど、なんか上手くいかない。
JavaScriptの関数まで引数として引き渡されてしまう・・・。なんでだろー。なんでだろー。

こんな感じ。

read more"flashVarsのJSON化" »

[ Flash ]

AS3でrootの参照が面倒なので一つクラスを作ってみた。
ついでにStageもSprite無しで参照できるように・・・・。

用途としては複数のSWFで構成されるプロジェクトで各子供のSWFでも単独動作させつつ開発を行いたい場合に使用。なんつーかネーミングがイマイチ。
(どっかのフレームワークに標準的に実装されていそうな気もするけど・・・)

read more"com.karatesystem.Root" »

[ Flash ]

AS3用に今までの自前のライブラリを作り直しているが
なんつーか一つ一つ引っかかるのがうっとおしい。

なんかむかついてきた。

[ Flash ]

Flash Develop3.0.0 β5
(※要Flex 2 SDK、.NET framework2以上、JDK(またはJRE)5.0か6.0はいらないかもしれない)

以前のバージョンに比べてかなり楽チンに設定できるようになった。
とりあえずFlex SDKだけインスコすればあとはもうほとんど設定無しで動く。
(フォントの変更はまだXML編集だけど、それ以外は結構設定画面でできる)


ちとAS3でのJSON周りのクラスを整理して作ろうと思い、as3corelibを叩き込む。JSON周りなんか色々増えていたけど、まぁボチボチ。

あと知らなかったのだけど、Alessandro Crugnola(SEPYの作者)がこっちでプラグインを作っている。もう長らくSEPYは更新されていないけど、もうこっちにシフトしていたんですな。ダウンロードはこちら(http://code.google.com/p/fdplugins/downloads/list

ま、まだそんなバリバリ使いこなしていないのでこんなところ。

ref:del.icio.us / tozaki / flashDevelop

[ Flash ]

\Application Data\Adobe\Flash CS3\ja\Configuration\ActionsPanel\ActionScript_3\ActionsPanel_3.xmlにエラーがあって動かないものがあるので修正。
修正箇所はL4475のこちら

<string name="useRichTextClipboard" object="[flash.text.TextField]" text=".useRichTextClipboard" tiptext="テキストと共にテキストのフォーマットをコピー & ペーストするかどうかを指定します。" version="" helpurl="HelpPanel/Help/ActionScriptLangRefV3/flash/text/TextField.html#useRichTextClipboard"/>

単純に"&"がそのまま入っていたので面倒なので全角にしてみた。

[ Flash ]

こんなかんじ。

a = 0.6;
b = 0.1;
c = 0.6/0.1;
trace(c);//output >6
trace(Math.floor(c));//output > 5

Math.floorの問題というよりも、浮動小数点の問題じゃないかな?一応少数14桁まではTraceで出力されるが、今回はその先で誤差が入っているのだと思う。Flashは(他のプログラムでもそうなのかもしれないが)浮動小数点の問題はこの辺(http://3dal.jp/blog/2007/10/post_63.html)のように加算でも発生する場合がある。

ただ今回は除算が原因なので、とりあえず対応策は

a = 0.6;
c = 0.1;
d = 1/c;
b = a*d;
trace(b);//output > 6
a = Math.floor(b);
trace(a);//output >6

これでOK。(数学的にはやっていることは何一つ変わっていないけど・・・)まぁ処理スピードのこととかも考えると出来るだけ除算は使用しないに越したことはないですね。


しかしこんなの普通気づかないよ・・・。
数式の正当性とかから疑い始めると仕事にならんですたい。

read more"Math.floorで・・・・" »

[ Flash ]

Papervision3D 2.0 Alpha
だそうです。

しかし俺のSVNは更新されない・・・。
はて・・。
参照先変わった?

[ Flash ]

非常に遅くなりましたがMAXで使用したスライド資料一式をアップしました。
この資料自体が簡単なMVCの構造を持っていますので、ソースも含めてアップです。
(本当はこれを使ってライブコーディングしたかったのだけど時間が足りませんでしたスイマセン)


Slide contents(html)
Source File(zip)
(記述に間違いとかあったらすいませぬ。あ、あとダウンロード、および使用に関しては自己責任でお願いいたします。このソースを使用して発生した問題について当方はいかなる責任も負いませぬので・・・。また使い方とかそういうサポート的な対応も行いません。一応念のため。)


中のソースについては時間があれば簡単に解説していこうと思いますが、独自クラスをあんまりがっつり説明してもあまり意味は無いので、あくまで考え方とかの参考程度にしてもらえればと思います。あとスクリプトを手打ちでしているので、";"が抜けていたり結構汚いソースになっていると思いますが、御容赦くださいませ。(言い訳が多くてスイマセン・・・。ソースを公開とか慣れていないので・・・)


元々色々独自のアプリケーションクラスとかも使っていたのですが、多分話がややこしくなるので、今回の話の関係する必要最小限のクラスに絞り込んで作り直しています。(これの作業に時間がかかってしまいました・・)なのでTween系などは純正のものに置き換えています。(ところどころクラスソースの中にコメントアウトしてある正体不明のクラスがあるかと思いますが、無視してください)

read more"MAX補足#4(資料およびソース)" »

[ Flash ]

前回MAX補足#2でFlashにおけるMVCの各要素の大まかな仕組みを説明しました。
実際のMVC構造に進む前に、講演でも話したいくつかのスクリプト以前の事項について書いておきます。

HTMLへのEmbed
これは特に何でもいいのですが、私はswfObjectを使用しています。
swfObject / http://blog.deconcept.com/swfobject/
FlashObjectのころから使っているのですが、非常にとり回しが楽なのと、代替ページの制御が楽チンで愛用しております。ただし代替ページ要素にあまりデータサイズの大きいものを置くとよろしくないようです。
(新しいバージョンが出ているようですが、まだ試していません)


SWFのパス基点設定
良く知られていることだと思いますが、一応念のため書いておきます。
HTMLファイルとSWFファイルの関係により、SWFファイルのパスの基点がかわり、相対的に他のリソースにアクセスする場合に問題が発生します。HTMLと同じ階層にSWFファイルを配置する場合は特に問題ありませんが、そうするとサーバ上がゴチャゴチャになって美しくないので、/swfなどというフォルダの中にSWFファイルを格納します。

この場合オーサリング時とHTMLから見たときで外部ソースへの参照パスが変わってしまうのですが、SWFObjectのタグに

so.addParam("base", ".");

としてやることで、強制的にSWFファイルの場所をパスの基点として認識させます。
以前SWFを埋め込んでいるHTMLのパス#2で、base="."だと正常に動作しないということを書きましたが、今は特に問題なくローカルでHTML参照しても動作しております。理由は不明ですが・・・。

read more"MAX補足#3 (Embed、Config、flashVars等)" »

[ Flash ]

071106.jpgFlashでカメラにアクセスする際に出てくる確認ダイアログ。
これ強制的に許可とか出来ないのだろうか??
(ネット上では多分無理だと思うけど、ローカルでのプロジェクタレベルとかでスキップとか出来たらいいなああ・・・)

[ Flash ]

何故MVCを導入するか?

・汎用的な部分の実装時間を短縮することで、表現(グラフィック、モーション)のクオリティを詰める時間を確保する。

が第一の目的です。

その他にも
・スクリプトコードの見通しを良くする。
・デバッグ負荷の軽減
・複数人での作業分担開発時における効率アップ
など効果はありますが、それらも結果として成果物のクオリティを上げる時間を確保することです。

なのでMVCを導入することで逆に時間を浪費してしまうような場合には
MVCの導入に固執することなく、さっさと割り切って違う方法での実装を行うことをお勧めします。

ということでこの前提を頭の隅に置いていただいて
FlashへのMVCへの適応の概要を書いておきます。

read more"MAX補足#2(FlashへのMVCの導入)" »

[ Flash ]

非常に困っています。
なんつーかライブラリアイテムを操作自体が重い感じ。
アイテムが多すぎるからなのか?

ちょっとイライラします。

フローティングダイアログとかも透けなくていいから、さくさく反応して欲しい。
そういうモード設定とかあるのかな?

[ Flash ]

昨日の資料の中で参考サイトとして利用したリソースを掲載しておきます。
基本的に概要になりますので、詳しく知りたい方は色々調べてみてください。

"Fifty Reasons Why ActionScript 3 Rocks(kicks ass)"Grant Skinner
http://www.gskinner.com/talks/50reasonsAS3/

MVCとは?/IT用語辞典

Model View Controller/Wikipedia

Architectural Framework
Cairngorm / Adobe Labで公開されているもの
http://labs.adobe.com/wiki/index.php/Cairngorm


ARP / OSFlashで公開されているもの
http://osflash.org/projects/arp


Pixlib / OSFlashで公開。元々ゲーム用
http://osflash.org/projects/pixlib

Application Framework
FuseKit / モーション系
http://www.mosessupposes.com/Fuse/


Papervision3D / 3D系
http://www.papervision3d.org/


Flade / 物理演算系
http://www.cove.org/flade/default.aspx


CASA / 詳細知らず
http://casaframework.org/

HTMLへのSWFへのembed
SWF Object
http://blog.deconcept.com/swfobject/

Flash Remotingフリー版(バイナリデータのやり取り)
AMFPHP
http://www.amfphp.org/

サーバ間での通信で使用するデータフォーマット
JSON
http://json.org/json-ja.html


あと、デザインパターンなどについては
デザインパターン/techscore
http://www.techscore.com/tech/DesignPattern/index.html
に色々と載っています。
ただしこれらはJavaやCなどをベースとした話なので、実際Flashにはそのまま適応できない部分があるかもしれません。(あと私もすべてを理解しているわけではないです・・・汗)

ちなみに講演の中でwrapper系クラスと言っていたのはここではproxyパターンに該当するかも知れません。元々プログラマではないのでその辺曖昧な部分ありますので、間違っていれば御指摘ください。

[ Flash ]

ただいま事務所に戻りました。
講演内容ですが、フレームワークという話題上、文字ばかり+見た目的に地味な話のオンパレードで聞いている人は辛かったかしら?と反省。ただグラフィック的な方向に話を持っていって構造フレームワークではなく、アプリケーションフレームワークの話にずれてしまうのを避けるため、分かりにくいの覚悟で構造系の話に絞って、その利点を伝えることでで押し通しました・・。

なんというか難しかったです。

実際MVCが必要になるような状況に遭遇したことが無ければ、その恩恵についてもイメージが難しいかもしれませんし、実際クラスって部分を理解している前提で話を進めましたが、もしかしたらその辺も説明が必要だったかもしれません・・。ただ実際横で座ってスクリプトを書きながらMVCについて教えてもやっぱ2時間とかかかるなかで、MVCという概念を取り入れることによって持たされる必要最小限の便利さを伝えられたら・・・と・・。

情報アレ以上絞り込めなくて、かなり急ぎ足の講演になってしまったのが非常に心残りであります。
講演の後には爽快感など微塵も無く、焦燥感だけが残っております。ブルーであります。

聴講された方で
ここが良くわからなかったぜー
みたいなのがありましたらコメントください。

答えられる範囲でお答えします。

[ Flash ]


再帰表現法―スタック・ソート・ハノイの塔・検索・フラクタル図形・視覚処理・再帰方程式

再帰処理でものすごいループが発生する場合に
Flash Playerが無限ループと勘違いして、「実行速度が遅くなっています。」とかのアラートを出してスクリプトの実行を停止させてしまうのだけど、計算自体は間違っていない場合ここをなんとか踏ん張ってもらってアラートを出さずに終了してもらえないのだろうか?

悩ましいな・・・。

なんか良い計算方法ないかしら・・・。

[ Flash ]

これ適応すると結構予想外のことが起こるな・・。
マスクが変になったり、
colorTransformが適応できなかったり、
デバイスフォントがおかしくなったり・・。

なんか最近これに関して嵌ることが多い。
しかも毎回現象が違うので
常に新鮮なデバッグができる・・・。

若さの秘訣は新鮮な出会い。
ヒャッホーーィ!

バーカ。

[ Flash ]

ふつーにmatrixつかってskewとかやるとやっぱビットマップ系のデータはかなり汚いのね・・。
結局displacementmap使ってしまった・・。
しかし相変わらずグラデーションの設定がめんどくさい。
パラメータ多すぎる・・・。
シンプルなバージョンも欲しいよ。

[ Flash ]

サーバサイドのSharedObjectが一つとかならまぁ簡単なのだけど、SharedObjectをユーザごとに複数生成したりして、syncを複数連動させたりすると、どのプロパティがどうなっているのかtrace以外に手段が無いのでワケガ分かりません。(しかもそれがFMSのコンソールでしかみれないのがしんどい)

サーバ側にもデバッガみたいなツールがあるとうれしいな・・。

netConnection Debuggerとか何故か使えないんだよなぁ・・・。
remotingのときは使えたのにFMSの時には使えない。

帯域負荷を下げるために四苦八苦です。

[ Flash ]

070808.gif
このタイトルが適当なのか分からないが位相ずれとかではなく、単位角度が非線形(恐らく)に変化する場合の直交座標系との変換ってなんか簡単な式はないのだろうか・・・。

なんか簡単に出来そうなイメージだったのだけど、頭がこんがらがってきて迷走中・・・。

単純に縦横の縮尺が当率であればそんな問題なさそうなのだけど、あれーーー?w

read more"座標の角度変換" »

[ Flash ]

全国のAS3挑戦中のみなさまこんばんわ。
AS2で手一杯の+39です。

さて今日は何度も何度も忘れてしまうテキストフォーマットタグをメモしておきます。

Flash8ではCSSを適応するとtextFormatが除去されます。
で、leading(行送り)はtextFormatでしか指定できません。
このためcreateTextFieldした場合、CSSを適応しつつ、leadingを調整するのはどーすんだよ?
みたいな感じなのですが、これには以下のようなタグがあるのであります。
テキストフォーマットタグ
なんつーかasfunctionと共に非常に見つけづらい・・。textFieldなりstyleSheetあたりに書いて置いてください。

で、簡単なサンプルはコチラ

read more"テキストフォーマットタグ" »

[ Flash ]

icon_flash8.jpg世の中がAS3で盛り上がっている中、天気の良い土曜日に未だAS2で四苦八苦して涙を流している今日この頃みなさま如何お過ごしでしょうか?

ちょっとこれはまだ既出なのかも、原因も良くわかってないのだけど、取り急ぎメモ。
明確な情報知ってる人がいましたら教えてくださいませ。

トラブルの内容は外部SWFの中でリンケージビットマップを操作している場合、loadして表示後、再度loadする場合、元の読み込みをunloadしていると次に読み込んだ先でリンケージビットマップが認識されない。というもの・・。
非常に説明しにくい状況ですが、詳細は以下。

read more"リンケージされたbitmapが認識できなくなる" »

[ Flash ]

いやーなんでお前がObjectなんだよ!?としばらく四苦八苦してしまいましたが、やっぱオブジェクトだった。コンピューターウソつかないね。

一応内容を書いておくと
var _a:Array = [1,2,3,4,5];
として
b = a.splice(1,0);
と要素抽出を行ってtraceすると
trace(b); // 1
これでb =1というNumberだと勘違いしていたという罠・・。

足し算とか全然できなくてあせりました。
俺はアホだ。

[ Flash ]

まれにだけど、Flashが動作しなくなることがある。
これはloadXML系のアクションを一度に発動させる場合に多いのだけど、

複数のloadを監視し、すべてload完了したら動き出すようなものを作成していた場合、traceを省略すると動作しなくなる。これはtraceを省略しているので実際細かい部分の挙動がどうなっているのか分からないのだけど、どーもload自体が発動してないような雰囲気。(しかもこれサーバを参照してなくて、ローカルを参照しているときにも発生する)

よく理由が分からないので、こうなった場合は仕方がないのでtraceを省略しない。
(まれにtrace文を削除してもloadが正常に動作しないときもある)

内部処理の時間の差なのか良くわからないのだけど、まぁそういうことがたまにあって、今も発生している。

[ Flash ]

icon_flash8.jpgAS3では"Timer"クラスが追加されていますが、まぁこちらはAS2での話し。
時間を取得するのはDateオブジェクト、もしくはgetTimer。
時間処理を行うには、setInterval、もしくはonEnterFrame。
これらを用いて
「特定の時間から1秒刻みで時を刻み、どれ位誤差が少なく60秒後を算出することができるか?」
ということをフガフガとやってみます。

onEnterFrameの方で実装。31fps / 6000ms計測。

t0 = getTimer();
t00 = t0;
d0 = new Date();
d00 = d0;
mode = false;
if (mode) {
//getTimerの値で計測
this.onEnterFrame = function() {
var t1 = getTimer();
t0 = t1;
if (t1-t00>=6000) {
trace("over");
trace(t1-t00);
trace(new Date()-d00);
delete this.onEnterFrame;
}
};
} else {
//Date Objectの値で計測
this.onEnterFrame = function() {
var d1 = new Date();
d0 = d1;
if (d1-d00>=6000) {
trace("over");
trace(getTimer()-t00);
trace(d1-d00);
delete this.onEnterFrame;
}
};
}

まぁシンプルに6秒後のDateとgetTimerでの差を求めています。
結果は
getTimerでの計測

over
6092
6079

Dateでの計測

over
6092
6094

全体として1.5%程度の時間のずれが発生しています。またgetTimerに比べてDateオブジェクトの方が結果にズレが発生しています。(といっても15/1000秒ですが)のですが、これはDateオブジェクト生成のタイムラグかもしれません。(と言ってもDateで計測しているのになんでやねん?という気もしますが・・・)何回か繰り返した結果もgetTimerの方がかなり安定した結果を出します。ということでまぁ補正するならgetTimerの値を元にするかな?と・・・。

で、実際問題としてonEnterFrameではちょっと使いづらいのでsetIntervalを用いてみます。
onEnterFrameでもそうですが、setIntervalも

インターバル関数は interval にできるだけ近い間隔で呼び出されます。呼び出す間隔にメモリに負荷のかかる長いスクリプトを実行すると、呼び出しの遅延が発生します。呼び出された関数によりビジュアルエレメントに変更が加えられる場合は、updateAfterEvent() 関数を使用して、十分な画面更新回数を確保する必要があります。interval が SWF ファイルのフレームレートを超える場合は、画面の更新に伴う影響を最小限に抑えるために、インターバル関数は interval が経過し "かつ" 再生ヘッドが次のフレームに入った後にのみ呼び出されます。

とフレーム依存ですので、元々誤差が発生するということで、それをgetTimerを使って補正してやろうかと思います。

read more"正確なタイマーを作る(できるだけ)" »

[ Flash ]

使いたいなあと思ったのだけど、やっぱAS3に比べて重いし、融通きかねえ。
かといって今回の案件はAS3にはできないしなー。
んーんー。


[ Flash ]

Wiiのサイトに「インターネットチャンネル向けのウェブページを作りたいのですが…。」が公開されて、一気にもりあがってるっぽい。
と言うことでメモ。

Wii リモコンの傾き&距離を Flash で取得したいのですが[trick7.com]
はじめてのWiiインターネットチャンネル向けFlash[りあ的」

面白いもの出来そうですね。
ってWiiとか持ってないのですが・・・。

[ Flash ]

http://www.papervision3d.org/
いやーついにここまで出来るようになったかーー。
すごいなあ・・。

[ Flash ]

メモ。

The installation disk contains “miniml” fonts in the Goodies/Fonts folder. To use the fonts, copy them to your system. For installation information, see http://www.adobe.com/go/learn_fontinstall_en.

miniml fonts are vector-based pixel font emulations that are designed to remain aliased in Flash and Fireworks. Aliased fonts improve legibility because of their high contrast.

You must use the fonts according to specific guidelines to maintain their crispness. See the “miniml Read Me.html” in the Goodies/Fonts folder for more information about using these fonts.

これまだCS3をインストールしてないのだけど、もうソフトに標準でついてくるってことかしらね?
まいいや。

[ Flash ]

いやね、もう2年前に「SWFを埋め込んでいるHTMLのパス」でウニャウニャやってたんだけど、まぁ一応解決したので(といっても1年以上前ですが)書いておきます。

想定しているディレクトリ構造は以下のような感じ。

/index.html
 └swf/index.swf

EMBED タグ、OBJECT タグのオプションの"base"を使うと何とかなりそうというのは、以前から言われていて、これにbase="."とすることでFlash内に記述されたパスがSWFの格納されている場所からの相対パスになり、開発環境プレビューとHTMLからの両方で閲覧は出来るようになります。ただしこの場合ローカル環境でHTMLと連動させる場合何故か表示されず、JSとの連動とかしている場合など結構うっとおしい。最近特にexternalとかを用いてJSを密接に連動することが多いので、その辺ローカルで作業できるに越したことはねえかなと・・。

で、この場合
base="swf/"
と設定することでローカル環境でindex.htmlを閲覧しても正常に表示されます。

で、flashの中は/swfを基点と考えてswfフォルダ内にあるcontent.swfとかをloadする場合は
loadMovie("content.swf");
の記述でOK。(ま、これはbase="."と同じですね。)オーサリング環境からのプレビューで動作すればローカルでもサーバでもindex.htmlから動作確認は取れるかと・・。
しかし何故にbase="."で正常に動作しないのか良くわからなかったのですが・・・。

世の中AS3で盛り上がっているときに今更な内容のエントリーを書いているあたりがかなりやばい感じです(エヘヘ 自分専用なんちゃってAS3フレームワークを作るにあたり色々過去のリソースを整理しております。あとはフォントの埋め込み範囲指定での共有ライブラリ化とかのノウハウとかも一応整理しておこうかなと・・。(AS3になってなんか変わっていたりして・・)

っつーかこないだストリングパネル(多元語化)の存在をしってちょっと泣きそうになりました。
まぁでもこれは結局textFormatなりCSSなりも切り替えないといけないので、従来どおり多言語管理Classを作ったほうが簡単そうだと自分を思い込ませることにしました。

[ Flash ]


Jeff Han's Multi-Touch Screen

昔から思っていることをまとまり無くだらだらと書いてみる。
あまり整理されてないので、まじめに読むと時間の無駄である。
(そもそもこのブログに無駄じゃないものがあるのかは疑問だが)

これは特にFlashとかPCとかいう話ではなく、マウスイベント、もしくは入力デバイスのステータスの話。
簡単にイメージしてもらうとマイノリティリポートで、トム・クルーズが操作する空中に浮かぶインターフェイスみたいなやつだ。

現状入力デバイスの主なステータスとして"rollover","rollout" "press","release"の4つが挙げられる。("dragout","releaseoutside"は明示的なイベントとは考えず除外しています)
強いて言えば"press"と"release"の区分も結果としてはさほど違いは無い。(タイミングの問題)

ということで絞り込むと"rollover","rollout","press"の4つになるわけだが、常々ここにもうワンステータス欲しいなあと思う。分かりやすく言うと"rollover","rollout"を「意図的なもの」「意図的でないもの」の2つに区分できないか?と・・。

read more"デバイスのステータス" »

[ Flash ]

原因は良く分からないですが、動作検証のためにプラグインをインストールしたり、アンインストールしたりを繰り返していると良くなります。
症状としては以下のような感じ。

1)プレイヤーのインストーラーを起動して、インストール完了
2)コンテンツを見るとプラグインチェックに引っかかり、「プラグインが無いからインストールしろ」と言われる。
3)再度Adobeのサイトに行って、インストールを行う。
4)完了画面になって、画面のなかでFlashが表示される。
5)バージョンチェックのページに行っても、問題なくインストールしたバージョンが表示される。
6)コンテンツページに行くと、やはりプラグインをインストールしろと言われる。
7)とりあえず一度きれいにアンインストールしてみようと、アンインストーラーを使って、アンインストールしてみる
8)2)に戻る。

といった感じで無限ループに入ります。
毎回再起動とかかますと非常に無駄な時間を費やすことになります。

ということでAdobeのサイトで普通に検索してヒットするやり方で解消できない場合は以下のレジストリをいじるやり方で問題を解決します。
Flash movies do not appear after installing the Flash Player

ずーっと前にも同じことやってるんですが、今回はエラーダイアログすら表示されない状態でした。
しかもAdobeのサイトを普通に見ていたらヒットしなかったので、念のため再度書いてみる。
一応レジストリいじりますので、自己責任の元行ってくださいね。レジストリってなんだよ?って人は、そこから軽く勉強してトライしてください。

ちなみにサポートDBには
Windows アップデート後 Flash Player のコンテンツが表示されない
とかいうそんな機能あったのかよ?みたいなのもありますが、これで解決したためしはありません。
Windows で Flash Player のインストールができない
これも役に立たない。
Flash movies do not appear after installing the Flash Playerの日本語訳はないのですかね?

[ Flash ]

Dateオブジェクトって継承が強いんだけど、まぁObjectなのでObjectCopyで複製できるかな?と思ったら、出来なかった。普通に引数無しで定義した状態になるんだけど、時間が表示されているので、これになかなか気づかなかった・・汗
結局それぞれ値を分解して叩き込むしかないんかしらね。
ま、いいや。

[ Flash ]

外部から読み込んだJPGを内包したMovieClipにマスクを掛けようとすると突然

*** セキュリティ Sandbox 違反 ***
SecurityDomain 'http://***_***.***.***/***/getDate.php' が互換性のないコンテキスト 'file:///E|/200704%5Fwow/dev/swf/c40.swf' にアクセスを試みました。

みたいな警告がでる。ここで警告対象になっている"http://***_***.***.***/***/getDate.php"とかいうのは別にここでは使用していない外部CGIなんだけど、なんだろう?

ちなみに
---
iT.setMask(iMask);
//iT = 画像が読み込まれたMovieClip
//iMask = マスクのMovieClip
---
だとエラーが出る。これをコメントアウトすると警告は出ない。(しかし当然マスクもかからない)
---
iT._x = 5;
iMask._x = 100;
---
とか普通のアクセスでは問題ないらしい。
はて?

[ Flash ]

いつからかSEPYで選択したフォントが毎回起動のたびにリセットされている。
設定ファイルをみてみると一応記録されているのだけど、起動するとCourierになっている。
別にいいんだけど、うっとおしい。

[ Flash ]

FlashDevelop
OSFlashで公開されているAction Script Editor。
良いという話を聞いて使ってみた。

感想
普段はSEPYを使用しているのだけど(Eclipseは大袈裟に感じて断念)、SEPYでいうところのClass Explorerが無いのが厳しい。
標準でFlashDevelopで実装されているのは"Actionscript pannel"(SEPYで言うところのmembersパネルに近い)と、"Files pannel"(SEPYと同じ)、そして"Project pannel"(これもSEPYと同じ)。
おいらは基本Class Explorerベースで作業をしているので(パッケージで一気に読み込めるのでプロジェクト毎に一気に読める)これが無いと正直辛い。(一応ディレクトリ構造=Class構造みたいになっているのでFilesでも良いのだけど、不要なファイルまで見えるのはウザイし、その中の変数、関数の一覧がASファイルを読み込まないと見れないのは面倒)

ただし、これはプラグインで拡張できるエディターのようなので、もしかしたら"Class Explorer"のようなものがあるのかもしれない。これがあるなら便利かも・・・。

といってもSEPYで今何が不便か?と言われると特に不便な点もない・・。
日本語入力がちょっと弱いらしいけど、基本日本語を書き込むこともないし・・・。

デザインとしては圧倒的にSEPYの方がクールだ。
VBみたいな激しいピンクやら黄色のアイコンは目が痛くなる。

ただ、function単位で折りたたみ出来るのはすごく便利だ。
長行のClassとか、目的行に到達する前に要らない部分が目に入ってきて気が散るのはやだ。
SEPYに折りたたみ機能がついてくれればいいのに・・と思う。

[ Flash ]

メモ
Best Practices Checklist

Best practices of course aren’t an exact science but these are some ‘common sense’ approaches I personally look for:

重々承知していることではあるのだけど、突然の変更依頼とか、最後の急な追い込みとかで途中でやめてしまうのが常・・・。
そして数ヵ月後自分でみても分からない・・汗

ちょっとキチンとやろうと思いました。

[ Flash ]

デスクトッププラットフォームを制するのはApolloかWPF/Eか / @IT
一件WPF/Eのほうがwin32APIにダイレクトにアクセスできて色々できそうだと感じるが、GIZMOを開発しているときに、その辺別に何とかなるもんだと思った。
だからWEB上で98%の普及率を誇り、OS依存の無い(正確には裏ではあるけど)FlashベースのApolloのほうが断然有利だと思う。
ただ、MSがWPF/Eにこれまでにない、独自の革新的な機能を持たせれば別かもしれないが・・。
まぁただWEB上のコンテンツとの連動などを考えると、今までのリソース量からいっても圧倒的にApollo有利なんじゃないかなあ?
なにしろ腐るほど開発者がいるw

[ Flash ]

broadcastMessageのremoveListenerってCALLしてから発動するのに1フレかかるのか?
というかオデがbeaconの作りをそうしてしまったのだろうか?
ちーめんどくさいな。
あーあーあーあ。

[ Flash ]

ローカルだとMovieClipLoaderが動作するのに、サーバにアップしたら動かない。
はて、こんな現象は初めてだな。
なにかいな?

[ Flash ]

キチンと検証はしていないのだけど、傾向としてなんとなく分かってきたのでメモ。
再帰処理などのときにfunctionをネストさせていくような記述を行う場合があるのだけど、そういう処理をすると計算負荷が高くなるケースがある。
これはプロパティを複数の演算ロジックに切り分けて操作していたりする場合などに良く用いるのだけど、演算部分を別関数化し、その関数を叩く親の関数の中でその演算結果を参照しプロパティを変更したりする場合。分かりやすいところでいうとtween classなどでよく用いられるRobertPaner等がこれに相当するかな?イメージとして関数のネストによって速度が低下するのは分かるのだけど、プロパティ操作は出来るだけ近い場所で行ったほうが軽いかなあと思ったりしたのだけど、どうも処理が分散することによる負荷の方が割高のようだ。下手すると2pfsぐらい速度が低下する場合がある。
これは演算を受け持つ関数の中から直接プロパティを変更させると速度低下は避けられる傾向にある。

この辺パッケージ化などを考えていると美しくない形にはなるのだけど、ただ速度低下を避けたい場合は考慮する必要があるかもしれない。AS3で書けばこの辺の計算負荷の問題はすぐに解決できるような気もするのだけど、まだAS3に移行してないのでとりあえずメモ。

read more"functionをネストさせると" »

[ Flash ]

ちとメモ。
ブラウザ内でSWFを表示させている際に、_xmouse,_ymouseの挙動について。

1)win + ie
キチンとマウスの位置を取得する
2)win + ff
ブラウザ枠の中にマウスが無い場合、(0,0)。枠の中にあれば取得。
ただし認識まで若干のタイムラグがある。
3)flash preview
オーサリング上でのプレビュー時にはプレビューダイアログの範囲に関係なくキチンと取得。win+ieと同じ挙動。

こんなことにブラウザ依存があったとはしらなかった・・・。

[ Flash ]

まぁこれも仕事柄よく使っているのだけど、毎回忘れているような気がするのでここに書いておく。
もう1ヶ月前に同じことやってるのに忘れているという・・・汗

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="www.hogehoge.com" secure="false" />
</cross-domain-policy>

domainの中は接続を許可するドメイン名。通常のhttp接続であればdomainの設定だけでOK。セキュアな領域に接続する場合はsecure="true"に設定。
また、どこからでも接続を許可する場合はdomain="*"でOK。

あ、ちなみにポートで切り分けている場合の挙動はちょっと検証できていません。
以上。

[ Flash ]

もうね、なんか2,3年前に引っかかって、再度また引っかかったのでメモしておく。
asfunctionにはスコープという概念はなく、そのテキストフィールドを基点として考える必要があるので、引き渡すメソッドはキチンと階層を記述した形にすること。
つまり叩くべきメソッド(ahoaho)の2階層下のtextFieldにasfunctionを埋め込む場合、
<a href="asfunction:_parent._parent.ahoaho,hogehoge">ホゲホゲ</a>
というようにキチンと書くこと。
もー、無駄な時間を使ってしまった・・。
自分にむかつくわぃ。

[ Flash ]

icon_flash8.jpgflash.external.ExternalInterfaceでJavaScriptを叩く際に、window.open系が入っているとブラウザによって色々と問題があるっぽい。

1)Safariだと「ポップアップをブロック」に引っかかってしまい、windowが開かれない。
2)win + Firefoxだと「新規ウインドウをタブに開く」と設定していれば問題ないが、新しいウインドウを立ち上げるとcallとFlash内のスクリプトアクションが消失する場合がある。

というような感じ。
解決策は・・・

read more"flash.external.ExternalInterface" »

[ Flash ]

icon_flash8.jpg発生するケースはイマイチよく分からないのだけど、wmodeを設定していると駄目な場合が多い。
特にwindows。なしてそんな設定がtextFieldに影響を与えるのか分からないけど、まぁそういう感じっぽい。
ということでメモ。

[ Flash ]

icon_flash8.jpgここ最近色々とMVCで管理するように試みているのだけど、Viewの部分が冗長になりがち。FlashのコンテンツをそもそもMVCでキレイに管理すること自体が難しいようなきもするのだけど、View管理の元にSceneというViewのような感じのものを用意するか、もしくはMVC自体をネストしていくか?もしくはView自体をSceneと割り切ってCの中で管理させるか?
ただ判断が難しいのがVの中で発生する動作の結果としてVが叩かれる部分。V内部で完結している場合それをCにいちいち戻すのが効率的なのか良くわからない。(Cをユーザーからのインプットの受け口として限定するのであれば・・。)

read more"MVCで色々悩むの巻" »

[ Flash ]

icon_flash8.jpg無料のFlex SDKをEclipseで使ってみようと思って、設定を試みたが面倒臭そうだったので1時間ほどであっさり挫折してみた。GUIがないから馴染めないのか良くわからないが、やっぱやるならPlug-in買って入れたほうがオデ的にはよさげ。
しかしframeworkって作業の効率化にはなるけど、実際ちょっとしたものを作っても色々巻き込んでしまって結構なファイルサイズになるのね。(まぁ実際はそんな小さなアプリケーションなんか作ることはないので、結果的には効率的なのだろうけど) 理想は自分でよく使う形、フローでFrameworkを構築することだけど、まぁそんな暇はないので既存のものを使用するか、今まで通りプロジェクト毎頑張るか・・・。この辺2,3年後の将来の大きな分岐点なんだろうなぁ・・。もう5歳若ければ、脳みそもまともに動いていたのだが・・・・汗 AS2で半端にFrameWork化しているのが逆に足を鈍らせている気がする。これらをAS3に書き直す元気は今無いw
ということで、とりあえず、終了。

ref:ActionScript 3.0メモ / http://www.saturn.dti.ne.jp/~npaka/flash/as30/
◆nemu90kWw.の雑記 - mxmlcの使い方とコンパイルオプションを勝手に解説 / http://d.hatena.ne.jp/nemu90kWw/20060716/p1
Mac OS Xではじめる Flex2.0:nod::ぶろぐ::RIA::Flash/Flex/Ajax(ここは結構オモロイ)
Ted Patrick

これはオマケ。
The Flex Online Compiler

[ Flash ]

icon_flash8.jpgメモ
Adobe and Mozilla Foundation to Open Source Flash Player Scripting Engine
http://www.mozilla.com/en-US/press/mozilla-2006-11-07.html
和訳:http://www.mozilla-japan.org/press/releases/2006/11/07/

AS3のそもそもの目論見だったであろう野望がMozillaを巻き込む形で動き出した。

[ Flash ]

icon_flash8.jpg昔keitapが書いていて気をつけるようにしていたのに、今日再度自分がはまってしまった・・・orz
ということで一応ここにメモ。
メソッドとプロパティの追加

配列をインラインで初期化した場合、クラスのすべてのインスタンスに対して配列が 1 つだけ作成されます。

なんちゅうか、じゃあstaticとか意味ねぇじゃねえかよ!って思う。
もうね、staticとか使ってるとデバッガでも覗けないしデバッグがめんどくさいんで、こういうイリーガルなルールはやめてクデ。もうね、Arrayだけ特別視とかしてる余裕無いのよ。

ref:ActionScriptの仕様?

[ Flash ]

icon_flash8.jpgメモ:Gabocoy techNote.: Flash+Max/MSP:Flashserver
まぁMACとか使わないのでイマイチMAXってのがよく分かってない。
ってか最初3d MAXかと思ってサーバ上でリアルタイムレンダリング?!とか驚愕してみたw
んなわきゃーない。

[ Flash ]

icon_flash8.jpgとりあえずSEPYの最新版がエラー連発+文字化けによるソース破壊が連発したのでEclipseに乗り換えてみる。ということでインストール一連をメモ。ちなみにEclipse3.2.1のケースです。
1)Eclipseインストール
Eclipseのサイト(http://www.eclipse.org/)からEclipse本体DL。
インストーラーは無いので、どっかprogram files/eclipseとかに展開。

2)JREのインストール
とりあえずEclipse専用にJREを用意する。
SunからJREをDLしてEclipseフォルダに突っ込んでおけばそれが優先的に使用されるらしいので、Eclipseフォルダ以下にjreフォルダを作ってそこにインストール。ちなみにすでにOSの環境に最新のJREをインストールしている場合はインストールができないので注意。(アーカイブパッケージとかあるのか不明)この辺実は個別の環境にインストールとかNGになったのかもしれない。

3)日本語化
日本語化パックのインストール。
http://download.eclipse.org/eclipse/downloads/drops/L-3.2.1_Language_Packs-200609210945/index.php
解凍後features, pluginsフォルダを先のEclipseフォルダにコピー。

4)FDTのインストール
FDTをインストール。Eclipseの
「Help/ソフトウェアの更新/検索およびインストール」
から指定してインストール。詳しくは以下のサイト参照。
http://www.powerflasher.com/fdt/flashsite/flash.htm

5)MTASCのインストール
とりあえずMTASCも入れておく。
http://www.mtasc.org/
からDLして解凍したアーカイブをEclipseの中に放り込んでおく(どうせコマンドラインで使うことは無いので・・)
Eclipseを起動して「ウインドウ/設定」を開いて、[FDT/Tools/MTASC]パネルでMTASCのパスを入れておく。(これはSEPYでも似たような感じでMTASCを設定できる)

7)実行の設定
[実行/構成および管理]を開いて、JAVAとかantとかを起動構成から外して、FDT - Flash supportとFDT-MTASC Supportだけにしておく。

read more"Eclipse導入" »

[ Flash ]

icon_flash8.jpg例えばextends MovieClipしたclassのコンストラクタでthis._visible = false;と設定しているMCがタイムライン上の[show]とかに配置されていたとして、タイムラインからgotoAndStop["show"]とかやっていきなり出現させるとコンストラクタとかonLoadとか先に一瞬描画された後で実行されるっぽい。

タイムラインが流れて[show]に到達して表示される分にはコンストラクタ、onLoad共に正常な順番で実行される。(先読み予測しているのか・・?)

ただし今検証しているクラスはかなりコンストラクタで色々初期化しているので、その辺の問題かも知れない。絞り込んだ簡単なクラスで検証する必要があるが、まぁとりあえず保留。

ちなみに親からCALLしてやると制御はできるけど、なんにしてもビルトインのfunction,property以外は認識のタイミングがonLoad以降になるので、その辺は気をつけないといけない。基本プロパティを引渡しして(これがまたsetterとか使ってると飛んでしまうので、直接)onLoadでそれを元に初期化というのが安全なやりかたかな・・。(子供から親をcallしてやってもいいけど、BroadCastとかあんま使いたくないし)

この辺タイムラインでの管理とClassでの管理の整合性が取れていない部分なのかも知れない。
(そもそも開発プロセスが違うというか・・・スタッフが仲が悪いとか?知らんけどw)

[ Flash ]

icon_flash8.jpgSE|PY ASEditor
4日前に1.5.2RC25がリリースされて、どーも調子がよくないなぁ・・というかコードが一瞬にして文字化けして復旧できないとか、ホイールをまわす度に怪しいエラーが連発したりと、薄氷を踏む思いでスクリプトを書いていたのですが、先ほど 1.5.3.1がリリース。
こ・・これで安定してくれればいいんだけど・・・。
付け焼刃でさらにやばいことになっていたら泣いちゃうぞ!

[ Flash ]

icon_flash8.jpg最近Flashをパブリッシュしたときに

**警告** 3567 と 36594 の間の ブランチが 32K の範囲を超えています。

こんな感じの謎の警告がでるのだけど、言われている意味が良くわからない。もう少し分かりやすいメッセージにしていただけないだろうか??
ただこのメッセージ同じファイルでも出たり出なかったりするんですよね・・・。
しかもメッセージでても一応正常に動作する・・みたいな・・。
軽い警告なのだろうか?

[ Flash ]

icon_flash8.jpgライブラリパネルに関連付けられているClassの名前も表示されるようにしてください。
なおかつそこで編集できると、とてもうれしいです。
(リンケージ名も)

よろしくお願いします。(誰?)

[ Bookmark, Flash ]

icon_flash8.jpgDigital Creatures :: FITC
ずっと前にdel.icio.usに入れておいたんだけど、見つけるのが面倒になったので、とりあえずここに避難。
AS3のパワーをまざまざと見せつけられます。
これでインタラクティブに動いている奴とかぞっとします。

[ Flash ]

icon_flash8.jpg昔Flashに三角関数が実装されていないころって、自分で三角関数とか作っていたのを思い出した。
そのころの苦労に比べれば今はなんて楽なんだ!ってことはなくて、逆にできることが増えすぎて大変な毎日。
まぁ表現できることが増えているので、それはそれでとてもうれしいこと。
後はオデの頭がどこまでついていけるか?だけが問題なのだ。

[ Flash ]

icon_flash8.jpgテスト用のアーカイブ版 Macromedia Flash Player の提供について

久しぶりにAdobeのサイトを徘徊していて遭遇。
今まで英語サイトにまとまっていたのはあったのだけど、ここまで細かくビルドが分かれては無かったように思う。とりあえずバージョン2からずらーっと細かいビルドに分かれて整理されています。
今までワレザーのように一生懸命細かく保存していたけど、バージョンが良くわからなくなったりして非常に面倒だった。しかし、これでその必要もない。アリガトンAdobe。

[ Flash ]

icon_flash8.jpgクラスファイルのプリロード、SWF ファイルにロードされるクラスのために異なるフレームを選択するには :

コンパイル時にクラスを除外するには :

[ Flash ]

icon_flash8.jpgAS3から"_x"が"x"になるという話だったけど、これって結構モーション系のクラスの中で使用している変数名の気がする。むぅ・・。
"_"付の変数名は将来的にプロパティになる可能性があるということで、推奨しないという話だったのに、そうとみせかけて、こう!みたいな・・。

[ Flash ]

icon_flash8.jpg以前に書いたmx.events.EventDispatcherにこれまた先日書いたprivate を適応させたら、"addEventListener"がエラーになった。
今まではClassの明確な型宣言を行ってなく、その場合はエラーになってない。
ということで解決の経緯をメモ(ちなみに手書きスクリプトなので、";"が無かったり記述が曖昧な部分があるかもしれませぬ。ただ致命的エラーは無し)

import mx.events.*;
class Test_EventDispatcher{
private var dispatchEvent:Function;
public function Test_EventDispatcher($filePath:String){
EventDispatcher.initialize(this);
}
public function TEST(){
this.dispatchEvent({type: "conf", src:"ahoaho"});
}
}
===本文===
var listner:Object = {};
listner.conf = function(mEvent:Object):Void {
trace(["conf called", mEvent.src]);
};
function init() {
TEST = new Test_EventDispatcher();
TEST.addEventListener("conf", listner);
}
init();
TEST.TEST();
===出力===
conf called,ahoaho

これを以下のようにすると

===本文===
var TEST:Test_EventDispatcher;
var listner:Object = {};
listner.conf = function(mEvent:Object):Void {
trace(["conf called", mEvent.src]);
};
function init() {
TEST = new Test_EventDispatcher();
TEST.addEventListener("conf", listner);
}
init();
TEST.TEST();
===出力===
**エラー** シーン = シーン 1, レイヤー = レイヤー 1, フレーム = 1 :行 8:'addEventListener' という名前のメソッドはありません。
TEST.addEventListener("conf", listner);

とのこと。
import mx.events.*;でaddEventListenerが勝手に追加されていると思っていたが、どーも違うらしい。
import mx.events.*;のパスが間違っているのかと思って外したら当然のことながら「**エラー** E:\実験君\classでの変数継承\Test_EventDispatcher.as: 行 6:'EventDispatcher' という名前のメソッドはありません。
EventDispatcher.initialize(this);」となった。
なので、addEventListenerも明示的に定義して解決。

import mx.events.*;
class Test_EventDispatcher{
private var dispatchEvent:Function;
public var addEventListener:Function;
public function Test_EventDispatcher($filePath:String){
EventDispatcher.initialize(this);
}
public function TEST(){
this.dispatchEvent({type: "conf", src:"ahoaho"});
}
}
===本文===
var TEST:Test_EventDispatcher;
var listner:Object = {};
listner.conf = function(mEvent:Object):Void {
trace(["conf called", mEvent.src]);
};
function init() {
TEST = new Test_EventDispatcher();
TEST.addEventListener("conf", listner);
}
init();
TEST.TEST();
===出力===
conf called,ahoaho

ということで解決。
なんつーか厳密になると結構面倒だなぁと思うと同時に、オデってすごいいい加減だったなぁとも思った。

[ Flash ]

icon_flash8.jpg素人みたいな質問なのですが、duplicateMovieClipで複製する先って指定できないんでしたっけ?
複製元の場所と同じところにしか複製できないんだっけな・・・?
ちなみに

var ref_over = this.createEmptyMovieClip("ins_over",1)
var ref_face = ins_face.duplicateMovieClip("ins_over.ins_face_over",2);

こんなことをやるとデバッガ的にはins_overの配下にins_face_overが含まれているように表示されますが、実は含まれて居ません・・・汗
いやーお父さん、デバッガにだまされちゃったよ(涙
デバッガのアホウ!

[ Flash ]

icon_flash8.jpgメモ

URL レポートの作成
$MU テンプレート変数を指定すると、現在の SWF ファイル内のアクションが参照する URL のリストが作成され、現在の位置にコメントとして挿入されます。これによって、SWF ファイル内のリンクを表示および確認する、リンク確認ツールを実現できます。

使わない気もするけど・・。

[ Flash ]

icon_flash8.jpgとかってできないものなのでしょうかね?

日本語は自動で折り返してくれるのだけど、英語単語は折り返してくれない。

CSSだと"word-wrap"で指定するのだけど(Firefoxではword-break: break-all;とかいうのがあるらしいけど、まぁHTMLの話)、これはFlashのCSSプロパティの中に入っていないはずなので、当然のごとく無視される。textField自体に"wordWrap"は存在するものの、これはもっと広義の折り返しなのであまり関係なし。(正確に言うと、headからtextField._widthまで到達すれば折り返すが、head自体を前送りにしてくれない)

---
ABCDE
FG,XX
---
はできるけど、
---
XXX,A
BCDEF
---
はできなくて
---
XXX,
ABCDE
F
---
になる。

この辺やろうと思ったら1文字1文字バラバラにtextFieldを作るしかないのかなぁ?それは結構面倒だな。

[ Flash ]

icon_flash8.jpgクラス内でprivate宣言しているのに何故にアクセスできるんだ?と不思議に思っていたのだけど、厳密な型宣言をしていなかっただけでした(汗

class Test{
private var hogehogoe:String = "hogehoge";
}
----
var test1 = new Test();
trace(test1.hogehoge)//hogehoge
var test2:Test = new Test();
trace(test2.hogehoge)//メンバーがプライベートで、アクセスできません。

あーお恥ずかしい。んでもちと疑問なのだけど、たとえば関数内でClass定義して、それを_rootとか_globalに配置したい場合ってどするの?
たとえばこんな感じ

function init(){
var test3:Test = new Test();
}
//-----
init();
trace(test3.hogehoge);//undefined

このとき"var"つけたらローカル変数になってしまうー(汗
なんというか世の中AS3なのに、こんなところで躓いているオデは一体・・・。

read more"private" »

[ Flash ]

icon_flash8.jpgtry{...}catch(){...}
のなかでundefinedの値の判定ができない。
try..catch..の問題というよりは、他に問題があるような気もしているけど、なんにしてもcatch以前にtryの中で判定してもそれすらスルー。

try {
if (a == undefined) {
throw new Error("error");
}
} catch (arg) {
trace(arg);
}

普通に書いたら問題ないのに、Classの中に埋め込んでいるのがやばいのか?それとも他の問題なのかな?この辺便利になった反面トラブルになったとき探すのがたいぎいわー。

read more"ちょっとメモ" »

[ Flash ]

icon_flash8.jpgテキストフィールドにテキストが入力できないんだけど、そんな仕様だったっけ??
なんかフォーカス自体が消失して割り当てられない感じなのだけど、初めて遭遇。
いやー原因がさっぱりわからなくて猛烈にはまった・・・。
入力フィールドにEmbedFonts使うなってことですか?ごふぅ。
とりあえずprototype使って強制的に解決したけど、なんか釈然としないなぁ・・。

原因を整理。
空の入力textFieldにembedFontsを適応し、textFormatを当てると、textFieldが消失。
(embedFontsしなければ問題なし、また何かしらの文字があらかじめ入っていれば問題なし)

read more"空のテキスト入力フィールドにembedFontsをすると・・・" »

[ Event, Flash ]

Adobe + ROKUNANA presents: Flash 8 INSPIRATION SCENE Summer JamFlash® 8 INSPIRATION SCENE Summer Jam

えとAdobeさんでお手伝いしたINSPIRATION SCENEが何故だか全国サマーツアーを行います。ヒャー(汗 私は8/8の大阪9/2の沖縄、そして9/6の東京に登場します。基本的に引きこもりなので、うまくしゃべれないと思います。ごめんなさい。

あと8/14の夜に Flash® 8 INSPIRATION SCENE Night Jamというのも行われます。

と非常といった大量の出演者が登場します。これは個人的に見に行きたいと思います。
ということでもし見かけたらやさしくしてください。
よろしくお願いします。

[ Flash ]

icon_flash8.jpgよく思うのだけど、ErrorクラスでErrorタイプを複数作る際にサブクラスで追加していくのは効率的なのか?が良くわからん。複数人で作業を進めている場合には楽なような気がするが、一人で作っている際には逆に面倒な気がするのはオデだけ?
個人的には

throw new Error({type:"dead",message:iName+"に値が入力されていません"});

みたいな感じだと楽な気がするのだけど、messageプロパティの型がString限定なので、Classレベルからの修正が必要。何故"String"に限定しているのか?これだとtypeが各チェックレベルで分散するから管理が難しいということなのかな?いや、どっちにしても関数レベルでtry...catchしているんだから分散するか・・・?それともJAVAとかそういう他の言語との統一性ということなのかな?
catchで判別するか、catchの中でif判定するかの違いぐらいなんだが、いまいちErrorクラスの利点を完全に把握できてないような気がする・・・。
その後で"dispatchEvent"とか使ってたりするから余計にややこしくなっている気がする。

[ Flash ]

icon_flash8.jpgmx.events.EventDispatcherを用いてイベントを取得後、removeEventListenerでリスナー削除してもそのオブジェクトの中に"queueName"が残るのだけど、これは残しておいていいものなのだろうか?すげえ気になる。ついでに言うと"dispatchQueue"とか"dispatchEvent"とか"initialize"の中で生成されるメソッドも一式残っている。あー気になる。

function removeEventListener(event:String, handler):Void
{
var queueName:String = "__q_" + event;
delete this[queueName];
EventDispatcher._removeEventListener(this[queueName], event, handler);
}

とかすればとりあえず消えるのだけど、いまいちEventDispatcherを理解していないので消したらとんでもないことになるんじゃないかと非常に不安。
あーあーあー、うーうーうー。蒸し暑い。

read more"mx.events.EventDispatcher" »

[ Flash ]

icon_flash8.jpg単構造のArrayを複製する場合は、

var myArray:Array = [0,1,2,3];
var copyArray =[];
copyArray=myArray.concat();

というやりかたが昔から一般的に行われているのですが、これが多重構造の配列になってくると配下の配列が参照になってしまい、複製になりません。ぐるぐる回して変数レベルで新規配列に引き渡して複製配列を生成することも可能ですが、構造が定型じゃない場合など非常にめんどくさい。で、こんなものを発見したのメモ。
"ObjectCopy"。(ジャ~~ン)
これは元々Objectのコピーのためのクラスなのですが、多重配列もキレイに複製してくれます。

read more"ObjectCopy.copy()" »

[ Flash ]

icon_flash8.jpg結構一般的なことかもしれないけど、ちょっとはまったのでメモ。

Macromedia製品のフォント名のルールはわかりにくく、リストに"bold"が表示されない場合は"roman"にパネルで"BOLD"を有効にしたりするという、フォントそのものが変更されているのか、Flash上でBold化しているのか良くわかりません。

よく使われるところでは"Helvetica Neue"のBold等がそれに相当するかと思います。Helvetica Neueの場合は基本的にweight volumeに+20したものに相当するので、55 RomanをBOLD化すると75 BOLD、65 MediumをBOLD化すると85 Heavyという関係になっていると思います。(ちなみに95 BlackをBOLD化しても変化はない)

今回は"Midium"と"Regular"のフェイスがかなり異なっている"Akzdenz Grotesk"で話を進めます、このフォントもFlash上では"Regular"をパネルで"BOLD"化して"Midium"に切り替えます。

ちなみにPhotoshopでは"Regular"をパネル上で"BOLD"化しても"Regular"のフェイスで太くなるだけです。正直どちらが正しいのか?と言われると微妙ですが、パネルはあくまでフェイスを補完する感じで考えるとPhotoshopの考え方の方がわかりやすい。Flashはフェイスが変わったり、補完BOLDだったりが入り混じっているので混乱する。この辺はAdobeへの統合に伴い統一の考え方になるかとは思いますが、それはそれで過去のリソースがめんどくさいことになりそうで不安です。

以上の話を踏まえて"Akzdenz Grotesk Midium"をembedFontとして使用する場合についてメモしておきます。

read more"embedされたfontをhtml指定する際の罠" »

[ Flash ]

icon_flash8.jpg別にここに書いてもあれなんだけど、メモ。
hitTestの対象にマスクを入れないようにできないものだろうか?
あと_visible = falseに設定した場合もhitTestの対象から除外できないもんだろうか?

よろしくお願いいたします(誰

[ Flash ]

icon_flash8.jpgなんだよこの問題クリアしてなかったのか・・・。
今年の1月に再審査請求で4月にパッチリリースかよ・・・。
ちと仕事に忙殺されてチェックしてなかったよ・・・。
ちょっとこりゃ結構トラブル起きるんじゃないのか??

ActiveX コントロールのアクティブ化

[ Flash ]

icon_flash8.jpg要素が多すぎてなんでこの挙動なのか把握できん・・・汗
少なくすると正常に動くんだけどなぁ・・。

[ Flash ]

icon_flash8.jpgやっぱあれだなーFlash早くなったといっても、普通に差分解析とかするとやっぱすげー重いでやんの。画要素なにも表示しなくっても平気でフレームレート落ちるわー。なんかうまい回避策はないものだろうか?

[ Flash ]

icon_flash8.jpgなんかしらんけど、2フレーム以前でStage.heightを呼び出すと実際のサイズ-100の値が帰って来る。あれー?今までこんな動きしてたっけな?と思ってググッたら出てきた。
F-site | Stage.heightが100ピクセル足りない
んー知らなかったぞw
まぁ今までonResizeで使用していたから別にいいんだけど・・。
2004からって・・・直せよ・・・汗

[ Flash ]

icon_flash8.jpgいつもFlashのヘルプの中でどこにあるのか忘れるので、ここにメモ・・・。

Back
アニメーションをトランジション範囲の片側または両側を一度超えて拡張し、オーバーフロー効果を発生させます。
Bounce
トランジション範囲を超えずに、この範囲の片側または両側にバウンス効果を追加します。バウンス回数は長さと関係し、長いほどバウンス回数が多くなります。
Elastic
トランジション範囲の片側または両側で外部に伸縮効果を追加します。伸縮度は、長さの影響を受けません。
Regular
一端または両端で実行速度を減速します。これを使用すると、加速効果や減速効果を実現できます。
Strong
一端または両端で実行速度を減速します。これは Regular と似ていますが、より大きい効果があります。
None
効果、減速、または加速を設定せずに、最初から最後まで等速で実行されます。このようなトランジションは線状トランジションと呼ばれます。

上記の 6 つの各イージングクラスには、次の表に示す 3 つのイージングメソッドがあります。
easeIn トランジションの最初にイージング効果を発生させます。
easeOut トランジションの最後にイージング効果を発生させます。
easeInOut トランジションの最初と最後にイージング効果を発生させます。

これとrobertpennerを組み合わせればほぼ網羅できるかなぁ・・。ただまぁこのClassには慣性継承の概念がないのでどっちにしても自分でイチからくみ上げないといけないのだけど・・・・汗
ちゅうかさ、コンポーネントでもTweenって存在しているのがよく分からなくさせている原因だとおもうのだがどうでしょう?

[ Flash ]

icon_flash8.jpg2年前に作ったクラスとか修正とかものすごく恐ろしい。FLAファイルが多く汎用的なCLASSだったりするとmethodをどのSWFでどうやって使っていたかとかもう忘れている。Flash8のムービーエクスプローラーがあほだから検索も半端だし、結局全インスタンスを開いてチェックしないといけない。そんなのFLAの数やインスタンスの数が多いと現実的ではない。FLAの中で使用されているCLASSの参照とかできないもんかな?Projectとか使えばできるのだろうか??アレもいまいち使い方分からなくて怖いしなぁ・・。結局今は全部自分の頭の中に構造を叩き込んでいるけど、これも時間的に2年も経つと抜けがあるし、容量的にも無理。こういうのってCとかJAVAの人はどーやっているのだろうか??
似たようなことをやるのにも恐ろしくって新規メソッドを追加したり、ちょっと非効率な部分を修正したくてもどこでどうなるのか分からなくて手がつけられない。CLASS使ってるのになんか非効率。タイムラインに書いているのと変わらん。あとはXMLのフォーマットも基本構造を保持できるパターンをもっと考えないとなぁ・・。この辺経験的になんとなく分かってきたが、昔のオデは一体何を考えていたのか?と今見ると激しくorz...
まぁ2年も自分の作ったコンテンツが使われていて、且つ更新されているのはある意味ありがたいことではあるのだけど、この期末の平行案件が多いときはつらいデス。

[ Flash ]

icon_flash8.jpgなんか昔なんかの案件で実装した気がするのだけど、今はまり中。
やりたいことはObjectベースのclassの中でxmlをsendAndLoadして、このオブジェクトの中で処理してしまいたいという感じ。たとえば

class test extends Object{
var private my_xml:XML;
function test(arg_1){
post_xml = new XML(arg_1);
my_xml = new XML();
my_xml.onLoad = function(result){
getData(this);
}
post_xml.sendAndLoad("sample.xml",my_xml);
}
function getData(arg){
trace(["data loaded",arg.firstChild.childNodes.length]);

}
}

見たいな感じ。onLoadの中のgetDataの参照先の指定がどーだったか思いだせない。そもそもこういう使いかたするならMovieClipをextendsしろってか?もしくはxmlNodeとかでextendsしてXML構造の中に持たせてもいいのかもしれんが、データ構造上なんか気味悪い気がする・・・。(あーでもsetter,getterを定義しておけばそんなXMLを意識させずに使えるかな?

[ Flash ]

icon_flash8.jpgうあーやっちまった。デザインが詰まってない状態のためMVC確定できずに作り出したら、結局リバースフローになってしまった。むむむう・・・。こりゃかなり作り直しっぽいな・・・。朝日がまぶしすぎて頭が回らない・・・。やっぱキチンと設計しないと駄目だわさ。

[ Flash ]

icon_flash8.jpgオッケ~~~~ィ!! 仕事山積み、フォォーーーーーーゥゥゥ!!
同じ会社になったんだからmacoromedia製品とAdbe製品のフォントのずれとかを早急に解決してくれぃぃ。よろしくおねがいフォォォォーーゥゥゥッ!
weight55をBoldにしたら65とか、そういう謎な仕様ははよ改善してくれっぃぃぃ。

[ Flash ]

icon_flash8.jpgこれビットマップパーツの生成に便利だろうと思ってちと使ってみたのだけど、イメージデータに対してうまく適応できない。ベクターだとうまく動くのに、ビットマップは普通に通常変形しているっぽい。ビットマップには適応できないんだっけな・・?なんかできるような話を聞いた記憶があるのだが・・夢か?

[ Flash ]

icon_flash8.jpg画像の彩度を上げる演算についてちとスタディ中。
理屈としてはRGBのうちのもっとも値の高いものを255へ。2番目をそのまま保持。3番目を0へという振り方になるのだけど、(この辺色によっては0まで振らないのだけど、その辺の算出方は検証中)これを各点のカラー情報を取得してると重すぎるので、マトリックスで一括で計算できるような形にできないものかと考え中。あほだから各点のRGB値を取得しないでそういう演算ができる方法を思いつかない・・。
普通に加算していったら明度もあがっちゃうしなぁ・・、相対的な処理を参照なしにできないものかなあ・・。この辺画像数値計算系のよい書籍とかないかいな?

[ Flash ]

icon_flash8.jpgウェブ標準のフラッシュ・オブジェクト自在術
メモー。
元:FlashObject: Javascript Flash detection and embed script

[ Flash ]

icon_flash8.jpg新しいの出てた。

Latest releases
experimental releases SEPY 1.5.2RC4 released (Fri, 06 Jan 2006 11:35:44 GMT)
Released at Fri, 06 Jan 2006 11:35:44 GMT by sephiroth_tmm
Includes files: SEPY-ActionScript-Editor-1.5.2RC4.exe (8568563 bytes, 986 downloads to date)

ref:SE|PY ActionScript Editor
今新しいマシンのセッティング中なので、まだ使ってませんが・・・

[ Flash ]

icon_flash8.jpgコールドブレス有限会社の提供するフレームワーク

コールドゲートは、コールドブレスが開発しているゲートシステムのフレームワークです。
キャラクターがフィールド上で動き回る形のアプリケーションに特化し、オンラインゲームなどの開発を手軽にできるようになることを狙いとしています。

ふーむ。XMLソケットってサーバの負荷が一番ネックになるのだけど、これはその辺を解決しているのが売りみたいです。そしてクリエィテブコモンで提供されているマクパペット。これは具体的に何するものなのか良くわからない。ぱっと見スタンドアロンなアバターという感じがするのだけど、ソケットと使ってどこかと連動しているのかしらん?

read more"ゲート" »

[ Flash ]

icon_flash8.jpgちょっと前から気になっているのだけど、今Express Installを実行すると
----
CONNECT www.macromedia.com:443 HTTP/1.1
----
になってCONNECTINGのままになってしまうんだけど・・・
オデのネットワークの設定が駄目なのか?でも9月、10月頃は動いていたんだけどなぁ・・・。
Adobeと合併してサービスがなくなった・・・とか???
 
Express Install FAQs
Express Install 適用ガイド

[ Flash ]

051125.gifなんかPlayerの判定とかをチェックするためにプラグインのインストールとアンインストールを繰り返していたら、Flash playerのactiveXがインストールできなくなった。こんなエラーが出ます。

Error 1904.Module C:\WINDOWS\system32\Macromed\Flash\Flash8.ocx failed to register. HRESULT -2147220473. Contact your support personnel.

ということで色々実験中。
Can't Install Flash Player 8 Debug Player
installation error 1904
How to remove the Macromedia Flash Player ActiveX control

read more"installation error 1904" »

[ Flash ]

icon_flash8.jpg非常に分かりにくいタイトルですが、ちとバグらしきものを発見したのでメモ。
flvをstreamingする要素を内部にもったMovieClipをキャプチャしてbitmapデータにdrawする場合に、netconnection(もしくはnetstream?)が接続完了、もしくはbuffer fullになっていない場合bitmapデータがdrawできないっぽい。これlocalだと再現しなかったりして非常に分かりにくいのだけど、ストリーミングサーバの反応が悪い、もしくはplay前にnetconnectionやnetstreamだけを確立した状態でホールドしている場合にこの現象がおきます。今のところ完全な回避策は見出せてないのだけど、できるだけその隙間の時間を少なくするような構造にして対応するような感じかなあと思います。
今後この辺ビデオコンテンツが多くなって、インターフェイスを絡み始めたりすると、bitmapデータで負荷軽減とかやることが多くなりそうなので結構引っかかる部分になるかもしれませぬ。
ということでメモ。なんか具体的な回避案とか知ってる人がいたら教えてくださいませ。

[ Flash ]

icon_flash8.jpgBitmapData.disposeじゃなくって、その中身だけ消すようなメソッドはないんかしら?
BitmapData.disposeやっちゃうと、もう一度BitmapData定義しないといけないっちゃ。これはやりたくないんだけどなぁ・・・。まぁ別に切り分けてしまえばいいんだけど。

[ Flash ]

icon_flash8.jpgあら、こんな仕様しらなかったよ。

SWF ファイルと同じディレクトリまたはサブディレクトリに格納されたローカルの FLV ファイルを再生できますが、上位のディレクトリを参照することはできません。たとえば、SWF ファイルが "/training" というディレクトリに格納されており、"/training/videos" ディレクトリに格納されたビデオを再生する場合は、次のシンタックスを使用します。

んー?なんかめんどっちな。

[ Flash ]

icon_flash8.jpgYahoo! Maps, Driving Directions, and Traffic
遅ればせながら・・。API群が豊富です。
Yahoo! Maps Web Services - Introducing the Yahoo! Maps APIs
googleとyahoo,amazonが頑張ってWEBサービスが面白い感じになってきましたねえ。
(サーバ負荷大変そうですけど)

[ Flash ]

icon_flash8.jpg昔作ったremotingのFlashを今更ながらas2にしようとしたら、サーバに繋がらない。んーー、なんかミスってんのかぁ?って色々調べていたら何のことはないサーバが死んでた(;´Д`)むーーん。
結局スクリプトもキチンとなってんのかさっぱりわからんかったぞ・・。こまったこまった。

[ Flash ]

icon_flash8.jpgそうかーsprite Classができたのはありがたいんだけど、それに伴ってLoader Classに諸々統合されちゃうのね・・。折角MovieClipLoaderで諸々使えそうな仕組み作ったのに・・・(;´Д`)
興味深いのは「メモリ上のバイナリデータから SWF や GIF, JPEG, PNG のオブジェクトを作成することができます。 」って部分。まぁbitMap使ってcloneとかすれば同じように使えるんだけど、それよりも効率的なのかな?ま、いいや落ち着いたら検証してみる。
とりあえずメモ。

[ Flash ]

icon_flash8.jpgakihiro kamijo
先月末に始まり、忙しくって紹介できませんでしたが、Macromedia Labs Homepageの内容をmacromadia japanの上条さんがブログ形式で解説してくれています。

read more"Macromedia Lab 日本語ブログ" »

[ Flash ]

icon_flash8.jpgVNC with flash | via.BicRe | imagenerationes: FlashでVNC
なーー、すげえなこりゃ。すげえというか・・。キャプチャだけではどこまでのことができるのかいまいちわっかんないですけど、まぁクリックぐらい?テキストの入力もできたりする?
flash.net.Socket、DES encryption、ActionScript3といったところの技術を使用しているらしいです。(Data Encryption Standard のalgorithm for ActionScript 3のリンクがデッドだ・・・(;´Д`))
あれだね、OS Flashの話もあるし、HPの話もあるし、なんかみんな結構おおマヂだったりするん?

read more"VNC with flash" »

[ Flash ]

icon_flash8.jpgstartDragって範囲を小数点切捨てって仕様だったっけ?
とりあえずメモ。

[ Flash ]

icon_flash8.jpggetURL("javaScript:window.close())");
が効かなくなったの?
はてな・・頭まわってねえええええ・・・。

[ Flash ]

icon_flash8.jpg明らかに存在しているワードを入力してもヒットしない場合があるヨ。
あとクリップボードからワードをテキストフィールドにペーストできなくない?
そんでもってライブラリの使用数がオブジェクトを選択すると変化したりする場合があるのだけど、オデだけ?危うく使用数0の奴を削除して掃除しようとして死にそうになりました・・・。
なんか今まで普通に使っていたところが不具合おきていてちと怖いです。
adobeになってからでもバグフィックスされるのかしら?

[ Flash ]

icon_flash8.jpgうまく動きますかぁ?
うちの事務所ではなんかうまく接続できないみたいです。
というか眠い・・・まぶたがくっつく・・・。

[ Flash ]

icon_flash8.jpgMovieClipLoaderでファイルをテンポラリにLoadしてストックしておくときなど

mcl_listener.onLoadInit = function(ref) {
ref._visible = false;
ref.gotoAndStop(1);
};

見たいな感じでやってたんだけど、これflvとかの巨大なファイルでやるとタイムラグでて、何フレームか表示されちゃうのね・・。でマニュアルを読んでみると

Invoked when the actions on the first frame of the loaded clip have been executed. When this listener has been invoked, you can set properties, use methods, and otherwise interact with the loaded movie. Call this listener on a listener object that you add by using MovieClipLoader.addListener().

って書いてあるわけで、すなわち"when the actions on the first frame of the loaded clip have been executed"が実行されないと発動しないということで、[最初のフレームのアクションが発動]=[ムービーの再生]と言うわけではないらしい。当然"onLoadComplete"は"onLoadInit"も後に発動するわけなので、仕方なく"onLoadProgress"でじりじり止めてみました。

read more"今まで気づかなかったけど" »

[ Flash ]

icon_flash8.jpgはい、出たー
マクロメディア、Macromedia Flex 2 製品ラインと Flash Player 8.5 を発表
~ Eclipseを基盤とした新ツールで、何百万人ものアプリケーション開発者
が Flash プラットフォームを活用した魅力的で効果的な
リッチインターネットアプリケーション(RIA)を構築可能に ~

Flex 2 製品ラインの紹介
ま、どっちかってとRIA系な感じかな?

[ Flash ]

icon_flash8.jpgあたらちいの出たよ。ポヨーン。
FLV Player 1.02 released
でも相変わらずダブルクリックでは開かないのね。
これ作ってみようかなあ・・・。

[ Flash ]

icon_flash8.jpgあー便利そうなんだけど、今使いこなす余裕がない。
ということで忘れないようにメモ。

[ Flash ]

icon_flash8.jpgんーっと、一応loading途中に故意にunloadClipを行って呼び出そうとしても発動しないですか?
ヘルプには

MovieClipLoader.loadClip() でロードされたムービークリップを削除します。このコマンドをムービーのロード中に発行すると、MovieClipLoader.onLoadError が呼び出されます。

と書いてあるのだけど、今のところローカルでは発動を確認できませぬ。とりあえず"not found"とかの通常ステータスはローカルでも確認取れるのだけど・・・。
これはver.7の時の"onLoadProgress"がローカルで動作しなかったという状況とおんなじ感じでしょうか?まぁ別に読み込み停止してonLoadInitとか発動しないのならそれはそれで対応考えるだけですが・・・。

[ Flash ]

icon_flash8.jpgThe quest for a new video codec in Flash 8
実際使ってみて感じることは、それほどクオリティには差がないんじゃないんじゃないか?ということ。アウトプットされるファイルサイズも今のところほぼ一緒。画質もほぼ一緒(というか違いが分かるほど元素材の画質がよくないのかもしれませんが)ただまぁOn2 VP6はアルファチャンネル持ってるわけで、それは今後のPIP展開の中では結構肝な部分なんだろうなぁ。
ということで勝ち組に一気になりそうなOn2の社長のインタビューなども合わせて・・・。VP7の展望とか、MSに対しての宣戦布告気味の発言とか有頂天な様子が手に取れます。(写真も満面の笑み)
VP7とかはかなり興味深い内容なのではないだろうか?(詳細不明)
ま、なんにしてもアルファが抜けてくれればお父さんは特に言うことはありませぬ。

[ Flash ]

icon_flash8.jpgMacromedia Flash Local Content Updater / Macromedia Flash Player Support Center
久しぶりにサポセンみたらこんなの発見。
ver8からセキュリティが更に厳しくなり、今まで動作していたSWFが動作しなくなる可能性があります。ということでそんなときにその部分だけを一気に解決してくれるツールっぽい。
使う暇はないのでとりあえずメモ。
オレが探しているのはこんな情報じゃなィー。

[ Flash ]

icon_flash8.jpgなんかうまく動いてくんないゾ。
音声付(MP3)のムービーだとcallされないっぽい。
それってこれに関係あるのか?

ビデオの種類に MP3 を選択すると、ビデオ時間コントロールは使用できません。この情報は MP3 ファイルを使用するときに自動的に読み込まれます。 Flash Video Exporter 1.0 で作成された FLV ファイルでは、メディアの合計時間 (Media.totalTime) を入力し、MediaPlayback コンポーネント (またはリスニングしている MediaController コンポーネント) の再生バーに再生の進行状況が正確に反映されるようにする必要があります。 Flash Video Exporter 1.1 以降で作成された FLV ファイルでは、継続時間が自動的に設定されます。(from : flash help)

えーっとめんどっちなぁ。まぁFlash Video Exporter 1.1以前のものはどっちにしてもNGではあるのだけど、なんかね、良く分からんよ。だって埋め込み方がわからないんだもの(;´Д`)やっぱマニュアルで入れるしかないんかね?
こんなことで1時間浪費・・・もったいない。

[ Flash ]

icon_flash8.jpg外部のXMLを読み込む際にchashBasterとしてMath.random()なんてのを引数として追記したりしますが、これをするとおかしな現象が発生することに気づきました。
環境はwin XP+Firefox+Flash player v8
流れとしてはこんな感じ。
----
1)外部からサムネイル等の情報を持ったリストのXMLを読み込む。
2)XML展開と同時にリストのインスタンスを生成し、それぞれのサムネイルをmovieClipLoaderで読み込み開始。
3)サムネイルの読み込みが完了したリストから順番に表示。
----
で、chashBasterをつけないと別に普通に表示されるのですが、chashBasterをつけると途中からリストが表示されない。これがサムネイルの画像が同じものが存在して、それが2個目が表示された後の制御が停止してる?みたいな感じ。パケット的には普通に全部へのリクエストは出ていて、読み込みも完了している。こりゃなんじゃらほい?挙動的にはonLoadInitあたりがバッティングしているような挙動なのだけど、chashBasterをはずすと動作するという理由がよくわかんないな・・。
ちと細かいケーススタディはできてないのですが、とりあえずメモ。

[ Flash ]

icon_flash8.jpg今までモジラでチェックしていたのだけど、ためしにIEにも入れてみたらFlashが見れなくなった(;´Д`)
どうもうまくPlayer8のインストールができてないくさい。アンインストールとかして何度か試したのだけどやっぱだめ。ぐはぁ・・・。
yahooツールバーとか一緒にいれるとかする前に普通にインストールできるようにしてくれよう・・・(;´Д`)
しばらくモジラな生活になります。メンドクサー。

[ Flash ]

icon_flash8.jpg常々思うのだけど、SWFを表示させているhtmlのURLって取得できないものなのでしょうか?
オレが知らないだけ?

read more"SWFを埋め込んでいるHTMLのパス" »

[ Flash ]

icon_flash8.jpgCAD・CGのための基礎数学
他にも色々勉強になる資料があるにゃり・・
近藤 邦雄 KONDO Kunio
ということでメモ。

[ Flash ]

icon_flash8.jpgこれなんかものすごく初歩的なミスかもしれないのですが、はまり中。

a = 0xeeeeeeee;
b = a/2;
trace([b, b.toString(16)]);
b = Math.round(b);
trace([b, b.toString(16)]);
[output]
2004318071,77777777
2004318071,77777777

特に問題なし。で、端数がでるものをMath.roundで丸めてみる

a = 0xffffffff;
b = a/2;
trace([b, b.toString(16)]);
b = Math.round(b);
trace([b, b.toString(16)]);
[output]
2147483647.5,7fffffff
2147483648,-(0000000

丸めないのはまぁ予想通り。余計な親切心で丸めた結果のものは-(0000000となった。えーっとこれは何だろう?0x80000000だと思ったりしたんだけど、何故に"("なのだろう?なんか基本的な16進数の考え方が間違っているのだろうか?頭が回らない・・・・。

read more"16進数演算" »

[ Flash ]

icon_flash8.jpgキャプチャ映像の自動的な初期化にはまり中。
何かが映っているとして、それが背景なのか移動物なのかの判断ができない(;´Д`)時系列におけるそのポイントの色情報を丸めて背景色として取得するようにしているけど、なんか微妙にうまくいかない(色がマイナスになったりする)16進数演算って普通にできないんだっけ?

この辺の仕組みとして多分楽なのはマニュアルで何も映っていない初期化の状態で映像をキャプチャ。そのビットマップデータをベースにしてリアルの映像との差分を取得。閾値設定して抽出範囲を設定ってカタチ。ただマニュアルでイニシャライズってのが鬼門。他にも映っているものの時系列における関係性とか取得できるのか?(密なグリッドで各点の色変異から全体としての領域の移動とかは算出できると思うけど、すげえ重そう。他にうまいロジックあるような気がする。)
 
しかしキャプチャした映像って思った以上に地味な色。現実世界にはPCの中の要素のような彩度の高いものって存在しないなぁ。(あったとしてもくすむのか?)

[ Flash ]

icon_flash8.jpgなんかいつもURLを忘れて探すのがめんどくさいのでメモ。
Macromedia - Flash Player TechNote : Archived Macromedia Flash Players available for testing purposes

[ Flash ]

icon_flash8.jpgFlex ActionScript および MXML API リファレンスガイド
今まで日本語があることを知らず英語ばかり読んでいた・・・・(;´Д`)
ということでメモ。

[ Flash ]

icon_flash8.jpgPrimalScript 4.0
Development Tool for Flash
取り急ぎメモ。

[ Flash ]

icon_flash8.jpgScreenweaver Goes Open Source
Screenweaver Core Interface Reference
Konfabulator、widget、GIZMOとデスクトップアプリ競争が加速してますねー。今までのゲートとしてのブラウザからの解放、アーンドデスクトップのパーソナライズ化という点で(今までの壁紙変えるのはパーソナライズとか思ってない)非常に興味のある部分です。
個人的にはFlashという開発環境を流用できる部分でGIZMO、ScreenWeaverを使うことが多いですが、これにMSがどーからんでくるのか?と・・・。(あんまり情報追っかけてないので詳しく知りませんが・・・)誰か詳しい人情報プリーズ。
ref:Jesse Warden blog

read more"Screenweaver goes Open Source" »

[ Flash ]

icon_flash8.jpgとかゴニャゴニャやってるのだけど、いまいちバグなのか記述のミスなのか判別つかない・・。
悪戦苦闘。んー、英語のドキュメントはやっぱ読破に時間がかかります。

[ Flash ]

icon_flash8.jpgブックマークがグチャグチャで分からなくなったのでとりあえずFlash系のリソースだけでもここに避難。
なんつうか個人的にコンポーネントと同じでこういうのを使い始めるとそれを使ってしか何かができなくなる恐怖心があるのだけど、一方でそれを使うことで更に違うことができるということも言える。
時間さえあれば全部自分で作るのがベストではあるのだけど、なかなか検証とか考えるとねえ・・・・。

read more"flash memo" »

[ Flash ]

thFlash.giffrom 2005-5-30 マクロメディア株式会社

read more"Flash video関連メモ" »

[ Flash ]

thFlash.giflocalConnectionでallowDomainを設定するとローカルで動作しないなあと思って今まで困っていたのだけど、何のことはないthis.domain()で設定すりゃいいだけの話でした。

receiving_lc.allowDomain = function(sendingDomain:String) {
return (sendingDomain == "ahoaho.img8.com" || sendingDomain == "hogehoge.img8.com" || sendingDomain == "fugafuga.img8.com" || sendingDomain == this.domain());
};

あーあーこんなことに時間くってんな>自分

[ Flash ]

thFlash.gifとか付けてくれないか?MovieClipにあるのに、soundにないのは卑怯だろ!?

[ Flash ]

thFlash.gif個人的に良くやる手法にonEnterFrame内におけるonEnterFrameの生成+継承というヤツがあるのだけど(名前とかあるのかな?)、これをも少し汎用的にしたときに継承すべきonEnterFrameがある場合は継承、ない場合は自殺。というところで躓き中。
onEnterFrame内でthis.onEnterFrame=function(){...と記述していく際にはその後に記述されたdelete this.onEnterFrameは実行されないのだけど、一つfunctionを経由した際に(たとえば引数としてfunctionを持って、それを条件がマッチしたときに発動し、そのfunctionの中でonEnterFrameを上書き)とした場合に、上書き前にdelete が作動してしまう。1フレームの中での駆け引きとか、よく見えないのでメンドクサイ。
ここら辺の1フレーム内での優先順位とかって明確な資料とかないのかいな。

[ Flash ]

thFlash.gif既出かもしれないがとりあえずメモ。
MovieClipの深度範囲は、-16384 から 1048575 まで割り当てることができるのだけど、depthに負の値を割りあてたMovieClipは外からも中からも消去できなくなる。
なんだろう?これ今まであまり気にしたことなかったけど、結構負の深度使ってる気がする。なんか嫌な予感。というかなんかイージーミスかな?

read more"負のdepthを持つMovieClipのremove" »

[ Flash ]

thFlash.gifonEnterFrameにおけるクロージャの継承とかちょっと諸々検証中。ということでメモ。

read more"クロージャの継承とか" »

[ Flash ]

thFlash.gif日本語のプロパティが設定してあると文字化けするっぽい。
なにか回避策はないんかな?
このプロパティはSJISとかそういうオチだったらやだなぁ。
とりあえず調査中。

read more"sound.id3" »

[ Flash ]

thFlash.gifsoundの"position"はミリ秒。これをうっかり忘れていて、

bt_pause.onRelease = function(){
pauseAt = my_sound.position;
my_sound.stop();
}
bt_play=function(){
my_sound.play(pauseAt);
}

とかやって何故音が出ないのかと延々1時間も悪戦苦闘してしまった・・・。むうー、もったいない。アプリ開発はオーサリング環境で動作できないことが多くて、結局アプリ上で動かすしかないのでtraceもデバッガも利用できない。エラーが起こっても探りようがなくって非常に疲れるニャー。

[ Flash ]

thFlash.gif自分で作ったClassにはまるというなんとも情けないことをして時間を浪費してしまった。うううう・・・・。Classとか汎用的に作れば作るほど、応用性がなくなるというか、俊敏じゃなくなる。逆に先鋭化しちゃうと、ちょっとした仕様変更に追従できなくて、二度手間みたいな感じになる。もっともClassを作ることが本来の目的ではないので、そっちにはまる必要無いということは頭では分かっているのだけど、生来の貧乏性がそれを邪魔する。運用も含めたある程度の揺らぎの見極めができてないから、いまいちまだピシッと程よい着地点に落とし込めない。何度も色々な案件で使いまわしているやつとかは大体冷えてきてはいるのだけど、一発でぱしっといけないものかねえ?

[ Flash ]

thFlash.gif前から気になっていたのだけど、

ref.txHead.htmlText = "<img src='" + tempImgSrc + "' /><b>" + tempGroup + "<br />" + tempTitle + " / " + tempCreator + "</b><br />" + tempDes;

とかした場合に何故かイメージタグの後に半角スペースが入るのですが、アレは仕様ですか?それともなんかミスってるのだろうか?

[ Flash ]

えーっとスケール1/3で分解してその9ブロック集合体で1:1。それをその中で1/4で再度分解とかいけるかな?とおもったら全然だめだったよ。そりゃ起点が毎回変わっちゃったら切るポイントも変わってくるっちゅうねん。んーー、まいった。スケールアップレベルの馴らしができない。ということはやっぱ3*3*9ではなく、3*3*4でそのあと/4ってな感じかな?
うむう・・頭がこんがらがってきたぞ。どのレベルが気持ちよく使えるレベルなのだ?今日一日朝からずっとそればっか(涙

[ Flash ]

thFlash.gifFlashのプロジェクター形式のファイルはオプション付けて起動することで変数を引き渡せないのでしょうか?
test_setPramsWithProjecter.exe -flashVars="a=1"
なんかこんな感じで・・・。マクもあるからやっぱ無理?

[ Flash ]

thFlash.gif未だになじめないのだけど、テキストフィールドのハイパーリンクを定義するのに何故"TextFormat"クラスなのか? 感覚的には"TextField"の方がしっくり来るんですが。

[ Flash ]

thFlash.gifちと仕事で複合曲線を動的に描画する必要があったのだけど、ベジェだとあんまきれいにできなくってちとはまり中。clipをattachしてラグランジェ補間してスプライン描画とかは別にいいんだけど、drawing methodのcurveToっていまいち使いこなせていない。(どーも各頂点から生成した曲線をコントロールポイントとアンカーポイントへ置換するところで鬱になる・・)3次元ベジェにすればきれいになるという話なのだけど頭がついていっておりません。歳だ・・・。
そもそも円を描くのに

function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void {
mc.moveTo(x+r, y);
mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
}

とかかなり面倒臭いです・・。(まぁ、これぐらいならまだいいんだけどさ)
参考:Introduction to Macromedia Flash MX Drawing Methods
Advanced drawing methods in Macromedia Flash MX

[ Flash ]

フジフィルムのサイトがリニューアルされますた。これまで約一年オデがオーサリングしたものがベースで公開されていましたが、今回はテキスト中心のレイアウトに変更されておりました。個人的には前の写真が全面に出ているタイプが好きだったりはしたのですが、データサイズは重いし、インターフェイスが使いにくいということで、変更されたのではないかと思います。前のデザインは写真が変わるのを結構ワクワクしながら見ていたりしたのでちょっとザンネン。

read more"fujifilm" »

[ Flash ]

thFlash.gif最近はもっぱらXMLを拡張した独自Classをセットすることが多く、その際に"set","get"でpropertyを設定するわけですが、このpropertyはデバッガで値が常時表示されるわけではないので、数が増えてくるとtraceたくさん書かなくてはいけなくてメンドイです。メモリ的には"get"とかで既存データからプロパティをその瞬間だけ作成するのが負荷は少ないのでしょうけど、今のご時世みんな大量にメモリ積んでいるし、容量的にも大したことないデータのために開発が手間になるのはどうなのかしら?とか・・・。また大量の複合配列とかをpropertyにしたりするのが良いのかどうかは悩ましいところです。(一瞬もたつく気がするときもある。)
ま、結局時間的な制約がある場合はxmlオブジェクトに独自プロパティを静的に追加しちゃって作ってるのですが、これが将来的にビルトインプロパティと被ったりしたらどーなるのか?とか考えると不安で不安で夜も眠れません。
色々検証したいことはあるのだけど、とりあえずメモだけ。

[ Flash ]

thFlash.gif今やっている仕事で高さ6650以上(!)ある外部JPEGを読み込むことになったのですが、これが2880pxで見事にちょん切られますw
元々Flashのワークステージ、および手動で作成するオブジェクトの上限が2880pxってのは知っていたのですが、外部読み込みのJPEGにまで制限が発生するとは予想してなかったw
元のサイズを50%とか、入れ子にして親のサイズを取得とか色々やってみたけど、どーもうまくいかず。ということでとりあえずメモ。

[ Flash ]

thFlash.gifこれは取得できないんでしょうか?おあー?
こまったぞな。

こんな感じ。「1」しかかえってこねえよ。なして?

[ Flash ]

thFlash.gifちょっとlocalConnection系でデータをやり取りしていてはまった罠。どーも40kb以上のデータはやり取りできないらしい。むむむ・・・ちょっと困ったね。

max limit to LocalConnection data?

[ Flash ]

thFlash.gif普通に使っているとFlash内でXMLオブジェクトを用いてXMLを生成することはそんなにないのだけど、ちょっと今回はエスケープさせるのにXMLオブジェクトを用いてXML(RDF)生成。で、既存のXMLデータに"appendChild"を用いてノード単位で情報を追加した際にその後自分自身に対して"parseXML"を適応してやらないとXMLのカスタムクラスなどが適応されない。ちょっと激しく嵌まってしまったのでメモ。まぁすでに完成しているXMLに"appendChild"を使っていいのかがよー分からんけど・・。ノード順が制御できないので、本来は一度Objectに変換しArrayに格納、sortで並べ替えて、再び最初からXML生成ってのが推奨される形かな?
いまいち頭が回っていない・・・。後日落ち着いたらキチンと整理するということでメモ。

[ Flash ]

thFlash.gif忘備メモ。
前から疑問に思っていて検証していないことをメモ。
Flashの中で普通にXML定義を行うとXMLNodeクラスもそのまま使うことができます。

なんだけど、XMLクラスをベースにカスタムクラスを定義するとなんかおかしげ
とすると"load"すらできてない。(一応メソッドが"tzkXML"の中に定義されているのは確認できるが動作してないっぽい) ここで止まっているので良くわからないのだけど、カスタムクラスの場合"XML"クラスだけ継承すれば"XMLNode"もスーパークラスとして継承されるのかもよく分からん。一応
なので問題ないと思うんだけど、それ以前の問題で止まっているのよーわからんちん。とりあえず何で"load"すらできないのか?根本的な何かをミスってるのか?誰か教えて。

read more"XMLおよびXMLNodeの継承" »

[ Flash ]

thFlash.gifCompressing XML in transit
へぇーなんかすごいこと考えるなーw まだキチンと読んでいないのでアレですが・・・。とりあえずメモ。ま、一番効率いいのはremotingなんだろうけどさ・・。使える環境少ないし。
Flash XML CompressorXMLを圧縮して送信する

[ Flash ]

ここ数日XMLと格闘中。Flashで作ったカレンダーでどこまで既存のカレンダーシステムと互換を取っていけるか?この場合対象はRFCのiCalendarになるわけですが、実際これを用いるツールをもってないのに互換を考えるってどーなんだ?とかおもいつつやっているわけです。
RDF Calendar WorkspaceRdfCalendarDocumentationこの辺読んでなんとなく見えてきたが、ここのRDFの記述の仕方が見にくいんだよ!うがぁ!
ということでシコシコ今日も勉強中。

[ Flash ]

thFlash.gif今ちょっと検証している事項の一つに「ビルトインメソッドをカスタマイズできないのか?」というものがある。たとえばこういうこと

まぁこれだけ見ると「こんなの必要ないじゃん!」とか「loadの引数に書けばいいじゃん!」ってことになるのだけど、ちょっと環境がWEBじゃなくてローカルアプリベースで、しかもプログラムで直接SWFの中を叩いたりしているので、オーサリング環境が実動環境を再現できないという厄介な代物なわけ。つまりオーサリング環境では"load"は通常のビルトインメソッドを使用して動作検証を行い、実動環境で動かす際にはプログラム的にカスタムメソッドをSWFの中に埋め込んでしまって、強制的に実動環境に対応するようにしてしまおうということ。 まぁ単純に上記の書き方だとずっと"load"を参照するので無限ループに入ってしまうわけですが、たとえば
とか
とかして逃がしてみるものの、やっぱ参照しているところは"XML.load()"だからか望むような動きにはならない。うまく状況が説明できないのだけど、簡単な例で言えばオーサリング時には通常の"XML.load()"の機能で動作しデバッグできるのだけど、全体として組み込んだときに
という風に動作するようにビルトインを変えたいわけです。 こー書くと「元からカスタムメソッドで書けばいいじゃなぃ!」という話になるのですが、そのカスタムオブジェクトはオーサリング環境では適応できないという非常に特殊な環境なのです。うーんなんというか状況を伝えるのが非常に難しいものだなーー。

[ Flash ]

thFlash.gifFlash でクロージャ。[torus solutions!]
想像もしなかった解決法。すごい。無記名を使用しないonEnterframeには基本的に引数を付けれないので(一度の発動で停止)泣く泣く初期化を行う関数を別に作り、その中からonEnterframeへの関数の割り当てとか行っていました。これをreturnで置換(?)できるとは恐るべし。コレ使えばclassのconstractorみたいに初期化情報を引渡しして一括で処理も可能。上記のページでは条件一致の際に発動する関数は固定みたいだけど、その辺も引数で渡して"apply"とか使えば色々流用は可能そうです。(AS2のclassだとそのメソッド自体のundefinedの判定で不正処理を停止とかも可能か?むしろinterface?)onEnterFrame以外にもボタンイベント系のセッティングとかにはかなり重宝しそうです。世の中賢いことを考えてくれる人はいるもんです・・。感謝。
補足だが上記のサイトのサンプルでは

と記述されているが、これだと"null"としてメモリに残ってしまうので、

でやったら終了後は綺麗さっぱりな状態になると思われまふ。

[其の他参考]
クロージャ/MLOG
[1.3 クロージャ] /Effecttive JavaScript - Dynamic Scripting

[ Flash ]

thFlash.gifMacromedia Flash Remoting for Flash MX 2004 ActionScript 2.0
さてやっとAS2版コンポーネントリリースです。
日本語版はまだなさげ、とりあえずDLして後でインストールする。ということでメモ。

[ Flash ]

thFlash.gifメモメモ
shared fonts manager for AS2がリリース
FONTMANAGER AS2 para Flash MX 2004
shared fonts manager
確かにフォントのこういう使い方は便利といえば便利。ソースをまだキチンと見ていないのであれですが、独自Classではなくビルトインクラスに追加とかの方が便利な気もするけど、それは難しいのかな?まぁ日本語フォントでやったら死ぬだろうな・・・。使用している文字だけを渡してくれるような仕組みがあったらうれしい。(Generatorでできたのかな?)

[ Flash ]

040602.gifKineticFusion
swf と XMLを相互に変換するJAVAベースのアプリ。SWFはMacromediaから仕様が公開されているので、色々とSWF生成ツールが作られているのだけど、これはSWFからXMLを生成し、それをXMLベースで修正してSWFに戻すことができます。これを使えばサーバ上で動的にSWFを生成することも可能だと思われます。(サーバに登録しないといけないとはおもいますが・・・)MINGとかGENERATORとかそんな感じでも使えるかなと・・・。XMLベースで出力してくれるというところが色々な可能性を感じさせてくれます。
ということでメモ。
[参考]Alexis' SWF Reference / Alexis' SWF Reference / OpenSWF.org / Flashing Without Flash / SSWF / Flash 輪講第 1 回資料 - KineticFusion

[ Book, Flash ]

4798106119.jpgFLASH OOP
Flash OOPJapan (著), Bascule Inc. (著), 加藤 達雄による日本初(?)のFlash OOP本。
6/16発売です。とりあえず予約しとけ!
なんか帯に「中村勇吾」という文字が見えるのが気になります・・・w
----
タカギさんから教えてもらったMoockの本も上に上げておきます。
0596006527.jpgEssential Actionscript 2.0 / Colin Moock (著)
英語ですけど、スクリプト見てる分には英語も日本語も関係ないので問題ないでしょう。あえて言うとOreillyの本は日本語になると逆に意味が分からなくなるかもしれません・・・。Flashの神が書いた聖書として魔除けのためにもっておいても損はないかと・・・。

[ Flash ]

thFlash.gifIE6でFlashの再生がちょっと遅くなったんじゃないか?とかいう話は前々からありましたが、それの関連でメモ。
Bazooka: "FLASHのFPSを正常に"
背景透明化(IE6だけ)のパラメーターを設定すればいいそうです。

へぇー。 参考:FLASH-JP:フレームレートが落ちてしまいます

[ Flash ]

thFlash.gif今まで検証環境が無くって試すことができなかったremoting。ちょっと仕事の兼ね合いで色々検証中。しかしremotingは高いのでサードパーティのヤツで検証(汗)しかしwebServiceConnectorとか使ってWEB Serviceにアクセスすることと何が違うのかいまいちわかってない(涙) ということで諸々メモ。
AMFPHP
Flash Remoting for PHP (AMFPHP)
FlashORB
NazunaAMF
OpenAMF
FLAP

[ Flash ]

thFlash.gif既出だと思うけど、一応自分のためにメモ。
AS1の時にどうだったか忘れたが、"_droptarget"なんかで取得した参照元の変換の際にevalのなかに入れる引数の挙動で四苦八苦。classをMovieClipに割り当てしてその中から変数管理している配列の中に格納されている参照元(_droptargetなどで取得したスラッシュシンタックス)を入れる際に

eval(this._parent.arrStg[this.id].mother)

てな感じで"this"を記述しないとうまく参照してくれない。AS1の場合は基本"this"表記だったのであまり気にしなかったけど、AS2だと"this"表記しなくても動作するので(したほうがいいのだろうけど)嵌まってしまった。自戒の意味も込めてメモw
しかし"targetPath","_target","_droptarget"となんでドットシンタックスとスラッシュシンタックスが未だに混合しているのか理由がいまいちわからん。どっちかにしてくれぃ。Propertyをドットシンタックスにすると無限連鎖するからかいな?あんま頭回っていません。
※ちなみに"aaa=targetPath(this);"とか定義する際に変数型ってなにになるのだろう?"MovieClip"?(確か一応動いたけどなんか内部の情報が無限連鎖したような・・・)
落ち着いてからの調査事項として保留。

[ Flash ]

thFlash.gifってやっぱ無理なんですかね?これ多分AS1の時にも似たようなことをやろうとしてできなくて、結局監視して対応したような気がする。この辺AS2でできるようになったのかな?ということで再度挑戦。
一応Docには

The properties specified with initObject are available to the constructor function.

と記述してあるのだけど、classのconstractorだとちとうまく動作しない。
たとえば

みたいなのをMovieClip Objectにregistして
みたいにしたとすると。"undefined"になる。ただまぁMCの1フレに"trace(file);"ってすればキチンと"1.jpg"って表示されます。Classのconstractorは引渡しの前に終了しているみたい。constractor関数に何かしらの引数とかで取得できたりするもんなんですかね?まぁフレームに記述すればよいだけなんですけど、できるならClassにまとめたいw 要望度強そうな感じの動作だと思うのですが、根本的なところでなにか見落としているのだろうか???

[ Flash ]

thFlash.gif最近ちらちらと耳にする「アスペクト指向」。トーサキさんのサイトでログを見つけてちょっとメモ。

アスペクト指向プログラミング
アスペクト指向プログラミングで、モジュール性を改善する
アスペクト指向プログラミング 関連情報

モジュール型 のプログラミングでは、ソースのコードからコンパイルされたコー ドへ単純なマッピングがなされています。コンパイラの最適化の効果を無視 すれば、ソースにおいて連続するコードは、そのまま計算機上で連続し たコードとなります。ソースの一行を変更すると、結果として、バ イナリコードに線形の効果を与えるといえます。アスペクト指向プ ログラミングを用いれば、ソースコードからコンパイルされたコードへの直接的 なマッピングという制約を受けなくなります。アスペクト指向プロ グラムのある一行の変更は、コンパイルされたコードに対して非線 形に効果を与えます。

んー良くわからんw。プログラムで線形、非線形とか言われてもさぱーりです。FlashだとSWFごとにClassを定義して親のSWFでそれらの挙動を監視するってことかか?まぁロギングという部分に関してはFlashやっていくうちにそれとなくやるようになっているとは思うのだけど・・・。それを管理というか、そもそものObjectへの命令発動自体を管理するってことかいな?しかしそれって結局Classの階層化という形である程度のモジュールとしては管理されているのではないか?とか・・・。自分でも何を書いているのか良くわからなくなってきた。言葉が難しくて馬鹿にはよくわからねぇ・・・。
指向についての議論とかは偉い人に任せて俺は手を動かしておこう改めて思ったw

[ Flash ]

040517b.gifSE|PY
なんかちょうどさっきアップデートされた報告受けたのでとりあえずDLして動作チェック中。まぁまだそんなに外部Classをきっちり使ってなし、Projectも使ってないのでそんなに出番はないだろうけど・・。

[ Bookmark, Flash ]

040517.gifUJIKO
KartOO の新しいサービスらしい。もちっと見てくれとか表現の部分はなんとかなりそうな気がするけど。フィルタリングとかその辺の機能がついていて、ちょっと辞書って感じかなー。うーん、どうだろう?もちっと使っているユーザーのパーソナライズ化とかをSharedObjectとかで貯めて結果に反映させるとかしてくれるような感じだとうれしいのかなぁ・・・。KartOOと同じく面白いのだけど、実際使うか?といわれるともう一歩弱い気がする。

[参考]Flash フロントエンド検索サイト UJIKO

[ Flash ]

thFlash.gifmacromedia flash mx 2004 livedoc "delete"
元々は"delete"自体のarrayに対しての挙動について疑問があったのだけど、その辺でちと見つけたのでメモ

これの"delete array[2]; "は"delete my_array[2]; "だろうと。一体何を削除しているのか?と・・・。ただそれだけ。 で、どっちかと言うとこのサンプルの挙動(配列は存在しないがarray.lengthは不動。つまり要素と長さのミスマッチがおきる)が少し理解できなくて困っていたのだけど、まぁそれは"splice"使えよこのアンポンタン!ということで収束。 ちなみに
とやるとヤバメ。
だとキチンと問題なく動作。ただし"for in"はソート順は保証されないとかいう話もあったと思うので(Objectだけだっけな)、任意のi番での処理が必要な場合はキチンと"splice"を使用したほうがよさげ。 ま、これFlash mxの時からあったことなんだろうけど、今まで気づかなかった。アホポンチン。

[ Flash ]

thFlash.gif写真家のサイトを構築するさいに撮影情報をうまく管理できないか?ということで色々と防忘メモ。

Exchangeable image file format for digital still cameras: Exif Version 2.2 , 2002-04, Japan Electronics and Information Technology Industries Association, JEITA CP-3451
Exif形式の画像ファイル解説
写真/画像とメタデータ:ExifからRDFへ
Exif data description vocabulary

うぁーめんどくさそうw
進捗は追って追記していきます。

[ Flash ]

thFlash.gifたまにMX2004のヘルプドキュメントに間違いを見つけるのでその辺自分のためにもメモしておく。
「外部 FLV ファイルを Flash ドキュメント内で再生するには 」

ちなみに誤ったままのコードだと

**エラー** シーン = シーン 1, レイヤー = レイヤー 1, フレーム = 1 :行 4:参照されているプロパティには、静的属性がありません。 NetConnection.connect(null);

というエラーが出ます。ま、ふつーに考えれば分かりますが・・・。ちなみにlivedocではキチンと直っています。英語だけどこっちを参照したほうが確実かも。(http://livedocs.macromedia.com/flash/mx2004/main/11_exte8.htm)

[ Flash ]

thFlash.gif いまさらなのですが、sortOnのoptionはnumeric系だと明示的にドキュメントに記述されているのは

ということで、numericは昇順の"16 / Array.NUMERIC"だけ記述されているのですがDescriptionを読み進めていくと

Performing a descending numeric sort on the age field produces the following results:my_array.sortOn("age", 18)

ということで"18"も存在することが分かります。ただこのstrings値はなになのかしら?と疑問に思いました。別に"18"で指定すれば良いのですが、なんとなく気になりましてね。だれか知ってる人いたら教えてください。
個人的には今XMLの特定のattributesもしくはnodeValueをキーにしてsortOnを実行できるClassをつくろーかなと思ったりしております。まぁなんかXML ObjectをArray化して、再びXMLに復元とかいう無駄げな手順を想定しているのですが、既存のもととかあるんでしょうか?

[ Bookmark, Flash ]

040408b.gifANA PASSPORT
くどすぎず、シンプルにまとめられているけど、やわらかい感じ。日付を選択するインターフェイス部分とかも単純なカレンダーになってなくていい感じです。昔に同じようなことを考えたときに「座席」指定とかFlashだとものすごく便利ジャン!とか思ったのですが、そもそも飛行機って搭乗受付の時点で席を決めるんだっけ?なんかそういう座標要素に対してのI/OってところってFlashだとかなり簡単にできるのでそういう部分での流用がほしかったなあと思ったり思わなかったり。(日本地図はあるんだけど、それって一般的に座標していなくても、行き先自体を画面でみて選択なんてありえないしね)
インターフェイス上に展開するオブジェクトの形を見て要素(座標)を決定するってのはあまり需要としてないのかなあ?ホテルの部屋とか、劇場の席とか・・。ホテルで予約を入れるとその部屋のライトがつくとか、劇場だとその席に人が座っているとか・・・。もーどこかそういうのやって無いんですかね?

[ Flash, Software, Web, Works ]

040330b.gif無事公開しますた。
日産デスクトップツール Ver.3(windowsのみ)
実質3週間・・・。皆様お疲れ様でした。
なんか今アクセスがすごくてサーバの動作がちょっと不安定らしいですが・・・Σ(・ε・;)


順次基幹Classの練りこみを行い汎用性を高めていきます。(デバッグ環境の整備も必要かなー。)EXTENSIONとしてまとめていければそれがベストですが、EXTENSIONの作り方がいまいちわかっておりません。ふーふー。

[ Flash, Game ]

040319c.gifFlash MX 2004 Professional : Reference
メモメモ。
世の中にはすごい人がいるもんだなあ・・・・。感動しました。

gumonji
これはFlashではないですけど、コンセプトが面白そう。
まだよく遊び方がわからないですけど・・・。

[ Flash ]

昨日探っていたブラウザクラッシュの問題がほぼ解明できたっぽいのでメモ。

今回の問題の内容はclass定義の際のプロパティの取り回しによってブラウザがクラッシュするものが発生するというもの。たとえば任意でclassを定義した際に、それらのプロパティを上位のXMLとかから継承して、かつ読み取り専用ってするってのは作業分散の時によくやるパターンですが、

としたとします。これで

<として山田さんの情報をもつprofileObjectを生成したときに、それらの初期プロパティ(今回は$name)をリセットするメソッドを追加したとして
とdelete をするとブラウザがクラッシュする場合があるということです。今回はこの部分を単純に

にすることで回避しました。今回は自分の環境ではまったく動作に問題がなかったので、切り分けに時間がかかった+十分な検証ができていない(代入値がnullならいいのか?とか)んですが、とりあえず初期プロパティをdeleteするとブラウザがクラッシュする場合がある(OSやPlayerのバージョン、ブラウザのバージョンなどの切り分けも不明、同じものでもなったりならなかったりしてました)ということでメモ。 デバッグに付き合ってくれた方々遅くまでありがとうございました。

[ Flash ]

一度組んだインターフェイスのデザイン修正とかかなり辛い。今まで設定していたオブジェクト名から全部修正して、座標も一つ一つ計算機で計算してから全部のパーツを一つ一つ手動で配置、普通に作る5倍の時間がかかる。それに伴うロジックも構造も全部組みなおし。精神的ダメージは大きい。今まで一つ一つ作ってきたものがまったく無意味な状態。非生産的だなぁ・・。凹む・・・。
いかんマイナス思考だ・・・。ポジティブシンキングで行かなくては・・・。
まだまだヘタレだなああ・・。

[ Flash ]

MX2004を購入したのはいいんだけど、仕事手一杯で触る余裕がない。
ということでマクロメディアの説明会に行ってきますた。
今日はビデオとデータバインディングの2つのお話。
ビデオの方はまぁMXからの延長ってことでそれほど目新しいことはなし。ま、今までノンリニアで編集してFlashに読み込んで(もしくはスクイーズ)で処理していたものをQT経由で出力できるようになったというのが作業的には効率アップかな?(ただPREMIER PROはQTはサポートなんで微妙。PROと6とか一緒に入れておくこと出来るのかしら?)
気になっていたのはデータバインディング部分。アイコンとか見ているとODBC?とか思わせるようなアイコンで、謳い文句がスクリプト無しでデータソースにアクセス可能とあったので、おお!SQLにダイレクトにいけるのですか?!と思ったけど、実際はそんなことはないw(当たり前)SOAP経由でWEBサービス取得できるコンポーネントがあるってこと。MXからUIコンポーネント充実してきてスクリプト書かなくっても色々出来るんだけど、それも諸刃の剣で微妙。結局Ver7で強化されたドメイン間のセキュリティでWEBサービス使うにもサービスサーバサイドに設定ファイルを置かないとダイレクトにはデータは取得できない。ということでCFでプロキシプログラム書いて、そこを中継して情報を取得するということになる。
ただPERLやPHPでそれが可能なのか?と言う部分に関してはCFの中でSOAPを配列化してFlashに引渡しとかしているみたいで、その辺やっぱオブジェクトとしてCFからFlashに引き渡しているのかしら?(SOAPなのに?)この辺そういうプログラムをさささ!ってかけるわけでもないので謎だけが残る。太田さんにその辺聞いてみたけど太田さんもいまいち分ってないw
うーんNTサーバをきちんと立てて検証すべきなのだろうか?(FCSもいい加減きちんとやらないといけないし・・・)勉強する自分と仕事をする自分の2人いてくれればいいのに・・。
夜寝ている間に同期を取ってくれるとか・・。そういう仕組みできないかしら?w

[ Flash ]

sharedObjectをObjectレベルで操作していたのだけど、delete とかnull,undefinedでobjectパージさせていたら、リロードして読み込んでも"undefined"定義でその下で動くはずのpropertyとかvalueに全然アクセスでなくって偉いはまった・・・。
initializeでカスタムクラスに定義して、その後sharedObjectの中のobjectを継承させていたのだけど、もー偉い目にあいました。(当たり前なんだけど・・・)
とりあえず引き継ぎは地道に変数レベルで行おうと・・・。
あぁずげー時間ロスしてしまった。

[ Flash ]

んーなんとなく解決策が見えてきたかな?
今までMからダイレクトにデータの出し入れをmethodつかってたから、ちょっと不安な部分があったのだけど、childMも作っちゃって継承してやればその分そこで自由にハンドリングできるから自由度も広がるかな?と・・・。その分カスタムクラスに対してのproperty設定もしなくていいし・・・。
ただpropertyでsetterを殺していたとしても、そのproperty名で値を直接設定したりするような勘違いをするとgetterも死んでしまってmethodが呼び出せなくなるというなんか本末転倒な状況になる・・・。なんのためにsetterを殺しているのか意味が分らないw
setter getterでそのpropetyのR/W属性設定する前に、propertyの上書き禁止設定とかしてもらわないと困るようw
---------- 山折 -----------
this.addProperty("id", this.id, null);
---------- 山折 -----------
これぐらいの融通性は利かせて欲しい・・・。(呼び出しのprototype設定してもproperty上書きで来ちゃうんじゃ意味がないです)

まぁなんにしてもこういう構築するときは実際Flash作り始める前に如何に仕様を整頓して体系づけておくか?がキーになるので、準備段階に異常に時間がかかるなあ・・・。一回組んでしまえばあとは非常に楽になるんだけど、最初の部分で道を誤ると全然駄目ってことだす。こーゆーの整理するときてってやっぱUMLとかだとスムーズに出来たりするんだろうか?今の俺のまとめかたって自分で後から見ても時々分らなくぐらいの意味不明な体系図になってるし・・。この辺での効率化とかも勉強しないといけません。

read more"MVC 其の弐" »

[ Flash ]

BLOGのFlash化とかRDFとか諸々問題あってどーなんかいな?と一歩引いていたのだけど、つい先日とこぞかのサイトでパケット拾ってみてたら、SWFの中にRDFが埋め込まれているくさい応答情報をキャッチ。そのあとIEがハングしたので、詳細は闇の中(どこのサイトかも覚えていない)
SWFのパケットのバイナリの中にいきなりRDFのソースが表示されていたという感じだったとおもうのだけど、そんなことが出来るのだろうか?(ってか外部からデータを読み込んでいるわけではなく、SWFをそれに基づいて生成しているということ?Ming使ってるのかな?)
それだとなんかFlashでBlog作る意味もあるのかもしれない。
個人的にはtrackBackもない検索エンジンにも拾われないBLOGとかBLOGなのかしら?と思ってしまうのだけど、逆にこのブログのページだけで既にGoogleに1300件近く登録されているってのもある意味ゴミ情報でネット世界をより使いにくくさせているのかもしれないとか思うと複雑な心境でもあります。

[ Flash ]

最近色々上位部分だけのスクリプティングなんかの仕事が多くて、そういったときにMVC的に作るとどーも効率が良くなくって「きー!」と叫ぶ毎日、如何に下層からダメージを食らわず、且つ的確に下層に情報を引き渡し、下層での自由度を保持して動作させるか?ということを模索してきて早1年、なんとなくMVCのコツみたいなのが分ってきた。(遅いなあ・・・w)
下層にはVとCの機能限定版を使わせると結構効率が良い感じかな・・と。当然メインストリームとしてのMとCは存在しているのだけど(以下parentM,parentC)、V制御のためのMとC(以下childM,chikdC)をそれぞれのシーンに合わせたものを用意して連結してやると比較的負荷が分散される感じ。つまりOutputの場合はparentMからparentCがchildMを生成し、childCに引き渡す。VはそのchildCの命令に基づいて動作する。逆にInputの場合はchildCがchildVとparentCに指示をだし、parentMにフィードバックしつつVを制御。この辺classの中にも階層化構造を持たせてやるとデバッグの時のトレースも比較的楽なように感じる。
これによってある意味開発の作業分散化も可能。つまりparentCからchildMに引き渡すオブジェクト、またchildCからparentCに戻すオブジェクトさえ決まっていればその範囲内でchildはロジックを成立させることができるので、違う人が担当しても全然問題ないという感じ。
まぁこれ今一人でやってるんであんまり分散化のメリットとかはないのだけど、この方式で行けばロジックのセグメント化(ネスト化?)ができるんじゃないかしら?と思った次第であります。
まだ色々試行錯誤だけど、だんだんとObject指向の利点が見えてきた気がする。
同時にargmentは基本Objectベースでやり取りした方が引数の増減を吸収しやすいというのもちょっとしたコツかなあ・・・。
世の中のMVCと合ってるのかはわかりませんけど・・・。どーなんでしょう・・・?ってか元々これがMVCの考え方?と最後の最後でやっぱり不安になってみるw

read more"MVC" »

[ Flash ]

今作っているFlashは色々な機能をClass化して使用しているのだけど、複数のSWFの連携で動作するので、class定義を外部ファイル化して共通で読み込ませている。
で、外部ファイル自体の中にif(this==_level0)って判定でそれが単独で再生されている場合はclass定義実行という振り分けにしているのだけど、これ外部ファイルに根本的な修正が発生すると全ファイルを再度書き出ししないといけない場合とかあってつらいときがある。
共有アセットの中で定義して共有させてみようかな?と思ったのだけど、実際色々触りながら外部定義を修正したときに、共有ライブラリを書き出ししないと、動作確認ができないというのは2度手間なのでめんどくさい。というかステージ上にそーゆーものを置きたくない。(でも外国の人は結構空クリップの中で定義していたりするんだよな・・・。空クリップって見失うんですけど、俺だけ?)
徹夜明けの頭でぼんやりとなんか素敵な方法はないかしら?と考え中。

[ Flash ]

今Flashで大量の画像を扱う仕組みのものを作っているのですけど、画像を一枚表示させるごとにメモリ使用量が3MBずつ追加されていく。フレームにID換算したイメージを配置してattachしたmcを制御していたのだけど、attachのMCが上手く引き継がれず追加されているのか?とデバッガで調べるが特に増加しているパラメーターもオブジェクトも無し。一応attachをやめ、マニュアルでMC配置で処理してみるもやっぱり画像を表示させるごとに3MBメモリ使用量が増加する。じゃあ逆にその画像自体をMC化してattachで置換するとメモリも置換してくれないのか?と試してもそれも駄目。
どうもスクリーンキャプチャの容量で何かしら表示された画像データをメモリにストックさせているような感じ。ということで、じゃあ画像のクオリティを下げてみたが、消費メモリの増加サイズは変わらず3MB。じゃあそれは表示サイズに依存するのか?ということで単純に表示率を縮小してみる。しかしそれでも3MB増加。それならと小さいサイズのイメージを取り込んで同様の検証を行ってみると、メモリの消費率が減少。
どうも表示領域のキャプチャではなく、SWF内部に保持する元々の画像のサイズに依存してキャプチャが行われているくさい。(ってか改めて考えるとラスタ的処理ではなくベクター的な処理構造なので当然だなと・・)

ということで今のところ結論としては

・Flash内で画像を表示させるとそれはメモリにストックされる。
・その際のメモリ消費量は元々Flashに取り込んでいる画像の領域に依存する。
・インスタンス名で置換はできず、ライブラリ内のデータ名で区別されるためメモリの置換が行えない。

というと感じ。最初にLoadされた時点でメモリに格納されるのだと思っていたけど、そうじゃなく表示されたタイミングでメモリに格納されるのね・・・。

ただMACなどのメモリ割り当てに必要になってくるメモリ量とは別のメモリ領域のようなので、それに伴い再生ソフトのメモリ割り当てを増やすということではない感じがする。(MACでの各プロセスにおけるメモリ消費が見えないので良くわからないけど・・・)

ま、これからブロードバンド化すすんで、Flash進化して大容量コンテンツが増加していく中で、こんなメモリ管理だと、こういった部分がネックになってくる時期もでてくるのだろうな・・(多分こういう部分をディレクターはきちんと処理できる気もするけど、触ったこと無いのでわかりません)

なにかこの辺Flashで上手くメモリを開放したりする術を知っている人いましたら教えてください。(これを書いている途中で思いついたけど変数でdelete するように一度MCをパージさせればいけるのか?試してみよう・・・)

read more"メモリの開放" »

[ Flash ]

仕事でミス発見。
今まで一年間それで動いていた様子。とりあえず現状でそれに伴う問題はないらしいのだけど、ちと自分的に許せないミス。一年前に気づかなかった自分にチェック甘かったと反省。

Flashがますますアプリとしての機能を求められてくるとデバッグというかライブラリ化をより進めていかないとひとりでは内部デバッグ太刀打ちできない感じもする。
Flash内部のインターフェイスとエンジンの構造の再構築と変数の管理、およびクラス化による関数の整理とかで、できるだけスムーズなデバッグができるように2004に移行する際に整理しておかなくては・・・・

ま、あまり個人には関係ないけど、こんなものを読んだりしてみる・・・。

[ Flash ]

ここ最近は非常にアプリ的な視点でのFlashの仕事が多かったりするので、ちょっと頭が理論モードになっている。なので、ちょっと感覚モードのアイドリングをしておこうかなと思ったりする。

個人で考えたときにFlashってどうよ?となると、単純なインタラクティブコンテンツを作るというよりも、やっぱなにかしらのメッセージを内包した表現媒体として、個々のパーツではなく、全体として見た人の心に何かしら残せる、または考えさせるというアプローチはできないものか?と・・・。(まぁ2年前からそういってなかなか進んでいない)
そういう実験で以前Rimicsに投稿したとかの方向性を個人的には突き詰めてみたいなああと思ったり。この中にさらに各ユーザーの意思というか思いを取り込みどういう風にフィードバックしていくか?とか色々考えたり。

そういった意味でちょっとJAVAとかも非常に興味があって色々触ったりしているのだけど、まだ自分の頭の中のイメージを思うがままにJAVAで表現できるほどのスキルがないので、関数とか取り回すので手一杯な状態。Flashも2004になったらまたそういう部分を自由に使いこなせるように勉強しなくてはいかんなあああと・・。

ま、自分へのメモということでかいてみたりした。

[ Flash ]

Flash 3Dのコンテストでつ。
商品はStudio MX 2004 with flash Pro.とかSWIFT 3Dとか・・・。
ま、swiftだしてるelectric rain主催なんですけど、興味がある人はどうぞー。
ってか締め切りいつだか知らないですけど・・・
tutorialとか結構丁寧に作られています。

[ Flash ]

アクティブコンテンツディベロッパーセンター
先日のログでも書いたけど、どうもMSは控訴とかそういう前に対応してしまうという考えらしいです。

Eolas社の特許に関する問題を回避するため、Microsoft社が今後リリースするInternet Explorer では、HTML内で <object>、<embed>、<applet>タグを使用した場合、再生許可を求めるダイアログボックスが表示されます。仕様変更済みのInternet Explorerは、まずデベロッパー向けにリリースされます。一般向けのリリースは、2004年初頭の予定です。

これによりどういう問題が発生するか?というとHTMLコードからプラグインを理解して自動的にプラグインを起動させるという機能がなくなります。このため

Flash, Shockwave, Authorwareプラグインを使ったwebページは、アクティブコンテンツがひとつひとつ表示されるたびに、再生を確認するダイアログボックスが表示されるようになります。

これはFlashなどに限らずすべてのプラグインが再生される前に再生許可を訪ねるダイアログが表示されることになります。対応策としては

<object>、<embed>、<applet> タグを外部Java script関数呼び出しで置き換え、タグをスクリプトで生成することで問題を回避できます。Macromediaは、HTML制作者およびサイト管理者が最小限の手間でサイト修正が行えるよう技術情報をweb上で提供しています。また、近日中に無償ダウンロードでき、サイトに適用できるツールが数種類用意されます。Macromediaのサイトでは本日付けでサイト内のほとんどのページに修正を行いました。

ということで、HTMLの記述の問題をJava Script関数に置換することで対応できるようです。なので、特にFlashの修整などの必要はありません。

権利の問題はデリケートな問題ではあるのだけど、Eolas社がこの件でどれだけの被害をこうむっていたのだろうか?と少し疑問に感じる。どうも後ろ向きな権利の行使っぽく捉えてしまって少しブルーです。

Eolas社が多くの反感を買ってまでこれを主張したことで、れだけの利益を得ることができたのか?も非常に興味がありますけど・・・

[ Flash ]

リファレンスには

インスタンス名があるテキストフィールドに現在のフォーカスがある場合、Selection.getFocus は TextField オブジェクトのターゲットパスを返します。それ以外は、テキストフィールドの変数名を返します。

とあるのだけど、どー考えても既にインスタンス名しか返してくれない気がするのだけど・・・。なんかミスってるのかな?
フガフガ・・・
まぁtextfieldのinstanceNameの方が取り回しは楽なんだけどサー。時間同期とか考えるとまだまだvalueも使わざるを得ないので微妙です。
(てかtextFiledでinstance Nameをつけてないものを何度も表示させるとドンドンtextFieldOjjectが蓄積されていくのはなんなんですかね?そして、それをデバッガで開こうとするとFlashが必ず落ちるってのは正直つらい・・・)

[ Flash ]

ECMA-262 Edition 4 proposal準拠色が強くなり、今までと異なる動作を行う部分が幾つかあるそうです。(まだすべては検証済んでないですけど)
そのうちの幾つか個人的にチェックしないといけない部分。

1)大文字小文字の区分サポート(今までは適当に動いていたw)
2)数値コンテクストで'undefined'を評価すると、'NaN'が戻る(今までは暗黙的に0が戻った)
3)'undefined'をストリング変換すると"undefined"になる。(今まではtraceでundefined表示はされたが、明確な変数値として"undefined"が戻ることはなく、空白ストリングが戻った)

うーん、(1)はタイプミスとかない限りは大丈夫なんだけど、(2)とか(3)とか結構暗黙的にこの辺の仕様を使っている気がするなあ・・・。ちと"NaN"と"undefined"の取り回しとかも結構紙一重気味なので注意しよっと。

[ Flash ]

発表になりましたね。日本語版はまだですけど、もうわけがわからないぐらいパワーアップというかサーバーサイドと連携しまくっています。ちょっと個人では環境を準備するだけで一杯一杯です。もうこのあたりからは組織的な体制でSEとプログラマと連携とっていかないとものも作れないでしょうね。まぁ今までグラフィック的なこととか、JavaScriptでロールオーバーとか小手先のギミックがメインのWEBでしたけど、ここら辺からやっと頭の中に描いていたWEBってのが実現できてくる世の中になってきたカナ?と。大変ですけど、ワクワクしますね。「情報を伝達する」を超えて、もっともっと人に近くシームレスになっていければと思います。

[ Flash ]

やーもう1000個ぐらいの変数とか取り扱っているFlashの改造とか非常にしんどい。もう1年前に作ったものとか思い出すのが大変です。ふーふー。

[ Flash ]

MovieClipの中でシェイプトゥーインを行う場合、そのインスタンスの_widthはシェイプトゥーイン中はそのトゥーインの最大幅を保持するらしい。インスタンス同士の幅を監視しながら動作するスクリプトを書いている場合はシェィプトゥーイン中の制御に注意が必要。理想はシェィプトゥーインをすべてモーショントゥーインに置換すること、ただし表現内容によってはシェィプでしか対応できない部分もあるので、その場合はそのインスタンス自体で_widthを取得せず、その内部にサイズ取得用のインスタンスを配置し、それをベースにサイズ取得、座標取得を行って対応したほうがよいかと思われ。

[ Flash ]

仕事ではないですけど、頼まれていた作品の締め切りが今日だったので必死こいてラストスパート。スクリプトを意図的な表現手法として用いることが出来るか?が個人的命題だったのですが、やっぱ微調整とか難しい部分ありますね。コチラが明確な意図をもっている以上インタレーションの要素がその領域を逸脱してしまうとちと辛い。まぁフリースタイルなら何でもアリって感じで意味不明でも可なのかも知れないですが、それも意図的にそうなのか、力量的にそうなのか、結果数式組んだら面白かったというこじつけなのか?と・・。エイドスがテロスありきなのか?それとも単にメソドス、テクネに基づいているのか?その辺そろそろFlashの表現の転換期なのかも知れないなあとかおもいつつ。そんなの大変だよなあ・・とかおもいつつ。

"Flash" ENTRIES