デザイナー?寄りの話である。
Flashの話でもある。
昨日馬鹿なことしたのでメモの代わりにエントリーを残しておく。
・ステージにMovieClip(インスタンス名 mc_1)がある
・6つのMovieClip(インスタンス名 f_mc_01 - 06)がそれとは別で配置されている
・6つのMovieClipそれぞれを押すと、(mc_1)が切り替わる
上記のようなものを作ろうとして、ハマった。
duplicateMovieClipがあれば、こんな事にはならなかったのかもしれないが、
そもそも実装を考えていればハマることさえ稀有なケースなので、
僕の頭は相当悪い。
結局、mc_1 のタイムラインに、f_mc_01 - 06 をそれぞれに配置することで、解決した。
以下にゴミコードを置いておく。
f_mc_01.addEventListener(MouseEvent.MOUSE_UP, numSplit);
f_mc_02.addEventListener(MouseEvent.MOUSE_UP, numSplit);
f_mc_03.addEventListener(MouseEvent.MOUSE_UP, numSplit);
f_mc_04.addEventListener(MouseEvent.MOUSE_UP, numSplit);
f_mc_05.addEventListener(MouseEvent.MOUSE_UP, numSplit);
f_mc_06.addEventListener(MouseEvent.MOUSE_UP, numSplit);
var snum:int;
function numSplit(evt):void{
var targetStr:String = evt.currentTarget.name;
var arr:Array = targetStr.split("_");
if(int(arr[2]) < 10){
snum = int(arr[2].substr(2,2));
}else{
snum = int(arr[2]);
}
changeTimeLine();
}
function changeTimeLine():void{
mc_1.gotoAndStop(snum);
}
すべてが馬鹿げているが、本当に僕がプログラマでなくてよかったと心の底から思っている。
そもそも、タイムラインの移動だけなら、ボタンは進む、戻るだけでいいし、
なんで文字列操作してインスタンス名からタイムラインの番号取り出してるのか意味不明だし。
世の中には僕とは違うまともなFlashエンジニアが山ほどいるので、ご安心ください。
誰か僕にプログラムを教えて下さい。