Category Archive: etc…

[ETC]Flash制作に欠かせない3つのツール@393編

kayacさん発信の元、流行ってるようなので便乗。
といってもペーペーなので新しいことを提供できませんのでちょっとベクトルを変えて。

◆まずはキーボード。
2009_10140003
ThinkPlus USBトラベルキーボード ウルトラナビ付
ThinkPadキーボードがデスクトップPCでも使用できると優れもの。
私はトラックポイント(赤ポッチ)に慣れすぎていてこれがないと始まりません。
マウスもつないでますがほとんどトラックポイントで済ませてしまいます。
イラストレーターのベジェとかも全部これで操作。
マウスもつないでますが、ほとんど使わないですね。
ちなみにトラックパッドは使いにくいので全く使いません。
で、最近トラックパッドなしのモデルがでたので、そっちも欲しいす、安いし。

◆続いてモニター
2009_10140066
DELLの24インチと22インチのデュアルディスプレイ。
基本的にウィンドウを整理して作業していないので、広ければ広いほど嬉しかったりします。。
一面にFLASH IDE、もう一面にFLASH DEVELOPだったり、
上記二つを一面に押しこんでもう一面はフォトショやイラレを開いたりといった感じ。
とりあえず2枚ないと始まりません。
もう一枚欲しいくらい。。。

◆最後に椅子
2009_10140040
Embody Chair (エンボディチェア)
私の希望するデザインと機能性を満たしてくれた初めてのワークチェア。
肘掛の自由度も高く、リクライニングも2段機構になっていて、椅子に座りながら背伸びが可能。
まぁ背伸びなんて椅子降りてやればいいことですがこれがなかなか気持ちいい。
ただ当初のもくろみはリクライニングを倒してふんぞり返りながら作業しようと思っていましたが、これをすると腰に負担がかかってえらいことに。。。
長時間、後傾姿勢で作業するにはヘッドレストがないと無理なようです。
なので作業時はリクライニング固定で前傾姿勢で作業。
背伸びするときだけリクライニングオンといった感じでしょうか。
写真の足元に映っている白い箱は足置き台。
テーブルが少し高いので足置き台を使うことで正しい姿勢をキープ。
足がむくみにくくなるようです。
ちなみにこの足置き台はダイソーで買った子供用踏み台(420円)
結構気に入ってます。

というわけでFlashには直接関係ないツールでした。
まぁストレスなく作業できる環境を作ることが何においても重要だと考えてます。

[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] 起動と終了

[Fl]CS3とCS4でラジオボタンのフォーカスルールが違う?

コンポーネントのラジオボタンで気づいたこと。
まずステージに3個以上ラジオボタンを配置する。
TABキーでラジオボタンにフォーカスを当てることができる。
このときカーソルキーでラジオボタンのフォーカスを変えることができる。
(デフォルトではラジオボタンのプロパティのgroupNameはRadioButtonGroupになっているため)
カーソルの右を押して、フォーカスがあたる順番はステージに配置した順番になる。

ここまではCS3もCS4も一緒。

ではラジオボタンにインスタンス名とかラベル名をつけたらどうだろう。
カーソルの順番が変わるのだ。
具体的にどう設定したらどう変わるかというルールがよくわからんが、インスタンス名とかラベル名をつけると順番が変わった。

CS4はではインスタンス名とかラベル名をつけてもかわらなかったようだ。
これはこれでスッキリしていていい。

だけど、同じflaファイルでもCS3でパブリッシュしたときとCS4でパブリッシュしたときで順番が変わる可能性があるってことでした。
(ずばりそのような状況に陥ったでした・・・)
これは意外と気づかないから危険だと思う。

ちなみにWin環境のみで検証。(Mac無いので)
Macではまた違ったことが起きそうな気もしないでもないです。

[AS]ドキュメントクラスでのthisについて

ドキュメントクラスは、MovieClipかSpriteを継承していないといけない。
そのためどっちを継承したかでthisの性質が変わってくる模様。

以下、Spriteを継承しててはまったこと。
ステージにインスタンス名myMcのムービークリップを配置。
ドキュメントクラスをMain.as


//Main.as
public class Main extends Sprite {
public function Main() {
var main2:Main2 = new Main2(this);
}
}

//Main2.asのコンストラクタ
public function Main2(container) {
var container2:Sprite = container

trace(container2.myMc.x);
}

これだと、container2にmyMcなんてプロパティ無いよと起こられる。
おそらくSpriteはDynamicじゃないからってことかな?
でも、↓こう書けばSprite継承でも参照できるみたい。
trace(container2["myMc"].x);
まぁcontainer2:Spriteとせずに、Mainとすれば問題ないけど。

最初からMainはMovieClipを継承してれば何の問題もない


//Main.as
public class Main extends MovieClip{
public function Main() {
var main2:Main2 = new Main2(this);
}
}

//Main2.asのコンストラクタ
public function Main2(container) {
var container2:MovieClip= container
trace(container2.myMc.x);
}

結論としては、ドキュメントクラスはMovieClipを継承しといた方が無難・・・

[etc]奥行きの考え方

【投影象の大きさ】:【オリジナルの大きさ】 = 【焦点距離】:【焦点距離+z方向距離】

投影像の大きさ = オリジナルの大きさ × 焦点距離 / (焦点距離 + z方向距離)

焦点距離をFとすると、投影面のxy座標は以下の公式であらわせる
x’ = x × F/(F+z)
y’ = y × F/(F+z)

最前面奥行き(z)を0にした場合。
F/(F+z) = 1
最背面奥行き(z)を1にした場合の最小比率をSとすると
F/(F+z) = S
F/(F+1) = S
F = S × (F + 1)
F = (1-S)/S