[AS]動的に追加したオブジェクトは、インスタンス名(nameプロパティ)を使ってアクセスすることはできない?→できます。

できそうでできなかったのでメモ。
※2009/9/25/21:43追記 できました→下に追記があります。

前提として、ステージ上にMcを配置し、そのインスタンス名はmc
mcの中には2個Mcが配置してあり、それぞれ、mc1、mc2とインスタンス名を設定

//メインのタイムラインのフレームアクション
trace(mc["mc"+1]);//出力:[object MovieClip]
trace(mc["mc"+2]);//出力:[object MovieClip]

//動的にspriteを作って、ステージ上のmcに配置
var sp1 = new Sprite();
sp1.name = "sprite1";
mc.addChild(sp1);
trace(this.mc["sprite1"]); //出力:underfined

//動的にspriteを作って、ステージに配置
var sp2 = new Sprite();
sp2.name = "sprite2";
addChild(sp2);
trace(this["sprite2"]); //出力:underfined

//配列につっこむ
var array = [];
array.push(sp1);
trace(array[0]);//出力:[object Sprite]

動的に設定したSpriteはnameプロパティを設定しても、それを使ってアクセスってできないのかな?
とりあえず配列つっこんで保持しておけばそこから呼び出すことはできるけど。
気分的には配列作るのにちょっと抵抗あり。
うーん。

※2009/9/25/21:43 追記
コメント欄にて教えていただきました。
以下のようにすればアクセス可能。

var sp1 = new Sprite();
mc.addChild(sp1)
sp1.name = "sprite1";
mc["sprite1"] = sp1
trace(this.mc["sprite1"].name);  //出力:sprite1

ついでにもう一点。
「as3 name インスタンス名」でググッてみたらF-siteにて野中さんの詳しい解説もありました。
[AS3] MovieClipインスタンスとインスタンス名

これによるとDisplayObjectContainer.getChildByName(String)を使う手段もあり。

var sp1 = new Sprite();
mc.addChild(sp1);
sp1.name = "sprite1";
trace(mc.getChildByName(sp1.name).name); //出力:sprite1

[AS][?]FLV読み込み時のonMetaDataを取得するタイミングがわからない

ちょっと気持ち悪いのでメモ

◆現象◆
簡単なFLVプレイヤーでインターフェースは再生ボタンと、頭出しボタン。
FLVPlaybackではなく、Videoオブジェクトによる自作。
この記事にかいてあるLoadMovieクラスの拡張版のような感じ。
(実際はもっとごちゃごちゃしてるのであとで時間ができたら簡略版を作って検証・記載する、つもり)
NetStream.clientにて、onMetaDataを取得するようにしてある。
NetStream.play(“xxx.flv”)で、MetaDataが取得は問題ないのだけど、頭だしボタンを押したときもMetaDataが取得される場合がある。
(読み込むFLVファイルによっては、頭出ししてもMetaDataが取得されない場合がある)
頭出しの処理は、NetStream.seek(0);

seek(0)から再生させたときにonMetaDataを取得するということなのか?
(seek(0)のタイミングではなくって、そこから再生させたら、みたいな感じ)
flvファイルによって、上記条件でMetaDataを取得したり、しなかったりという感じが???なのです。
原因よくわからんのでとりあえず例外処理書いたけど、なんか気持ち悪い。

[JSFL][?]JSFLでモーショントゥイーン(色)させる

久しぶりにタイムラインでの作業。
MCのカラーを黒→赤、または赤→黒といったモーション(時間は4フレーム)で行うという作業が大量に発生。
最初はとりあえずクラシックトゥイーンにショートカットを割り当ててシコシコやっていたけど、よく考えたら、全部コマンド化して一括に実行すればいいんじゃね?と思い、試してみました。

まずはヒストリパネルから、必要な手順を選んでjsfl化しようと思ったのですが・・・
フレームの移動の部分をjsfl化してくれないので無理ということに。
※ヒストリパネルからコマンド作成は、↓の記事が参考になりました。
Mattari Blog:jsflのすすめ

じゃあ、足りない部分は自分でjsfl書いてみる!ということでjsfl初チャレンジ!!

で、できたのがこちら。

// 赤になる
// This command was recorded by Adobe Flash CS4.

//タイムラインを変数で保持
var path = fl.getDocumentDOM().getTimeline();

// インスタンスの濃淡: '#ff0000', 100%
fl.getDocumentDOM().setInstanceTint('#ff0000', 100);

//フレーム数を取得
var fr4 = path.currentFrame-4;

//指定したフレームをキーフレームに変換
path.convertToKeyframes(fr4);

//指定したフレーム数をモーショントゥイーンに変換
path.createMotionTween(fr4);
// 黒になる
// This command was recorded by Adobe Flash CS4.

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

// インスタンスプロパティ: colorMode, none
fl.getDocumentDOM().setElementProperty('colorMode', 'none');

//フレーム数を取得
var fr4 = path.currentFrame-4;

//指定したフレームをキーフレームに変換
path.convertToKeyframes(fr4);

//指定したフレーム数をモーショントゥイーンに変換
path.createMotionTween(fr4);

使い方としては、トゥイーンを終了させたい位置にキーフレームを打って、上記のコマンドを実行すると、
それぞれ4個前のフレームから始まるモーショントゥイーンが設定されます。

本当は、最初のキーフレームを打つ部分もjsflにまとめたかったのだけど、その処理を入れると色のプロパティを変更する処理が実行されなかったのよね・・・
なんかできそうな気はするけど、こんどえらい人に聞いてみよう。

[XP]hall.dllがみつかりませんと言われるとき

TrueImage Personal2を使ってCドライブをリストアすると毎回このエラー。
回復するための参考サイトは以下。
起動しなくなったXPを救う「Rebuild」コマンド

回復コンソールでのコマンド(半角スペース位置に注意)
attrib -h-r-s c:\boot.ini
delete c:\boot.ini
bootcfg /rebuild
fixboot

bootcfg /rebuildでboot.iniを作成するときは以下を参考
Bootcfg コマンドとその使用法について

その他、参考
[win2k] 起動と終了