気分転換にいつもと違うことをしようとした。

まず、ランニング

ひさしぶりに町内大回り1周してきた。

意外と走れた。

ついでにドンキホーテよって髪の毛を染めるやつ・ゲソの酢漬け・酸素ボンベ買ってきた。

酸素ボンベ一度やってみたかったけど

はっきりいってあんま違いがわからんw


何事も経験ということで…。

今日、風呂はいる前に髪染めよう♪

2年くらい髪染めてなかったから久しぶり★


ついでにヒゲも剃ったろう!



もちろんフラッシュも勉強した。

今日は黒板、ボリュームつまみ移動、MC同士の衝突判定、attachMovie()をやった。

各重要どころは↓。

●ボリュームつまみ
範囲を指定してのドラッグ
⇒つまみMCのon(press)に下を記述でドラッグの範囲を決めれる。
(左限界→0、右限界→100なら0~100まで)
this.startDrag(false,左限界,上限界,右限界,下限界);



●MC同士の衝突判定
これはmouseとの衝突判定より文は簡単。

onClipEvent(enterFrame){
if(this.hitTest(_root.MCインスタンス名)){
スクリプト
}
}
これだけ。this(自分)が_rootにある◎◎と重なっていたら…という意味。
これを毎フレーム判定するだけ。


ちなみにthis(自分)がマウス位置と重なっていたら…は
onClipEvent(enterFrame){
if(this.hitTest(_root._xmouse,_root._ymouse)){
スクリプト
}
}

●黒板
.lineStyle(線の太さ,色,α)  線のスタイル

.moveTo(x座標,y座標) どっから?

.lineTo(x座標,y座標)  どこまで?


clear();   これで書いた線を消す。


手順
空MCを作成し、シーン上においておく。クリアボタンにclear()の設定するほかにマウス状態のアクションも書いておく (ムービー共通だから)

---------------クリアMCに書き込むスクリプト-----------------
読み込まれたらdrawをfalseにする。
mousedownのときdraw=trueに変えて_rootにあるmcのlineStyleを(2,0xFFFFFF);とし、

_rootにあるmcの開始位置をmoveTo(_root,_xmouse,_root.ymouse);…と設定する。

つづいて、UP時→drawをfalseにしてthis.hitTestを使ってXYマウス座標とかぶっていたら_root.mc.clear();を実行する。

最後にmouseMove→if(draw)ドローがオンのとき、lineTo()で終了位置を決める。
その後UpdateAfterEvent();で再絵画(これで線をつなぐ)する。

●attachMovie()
一番分かりにくい。使用の際はシンボルのリンケージ必須。
簡単にいうと、リンケージしたシンボルを呼び出して、アクションスクリプトでムービーインスタンスを作ろうというもの。


とりあえず書式はこのようになってる。

.attachMovie(識別子,新インスタンス名,深度)    パスは自分の中に作るのであればthis.attachMovie…となる。

今回の例は線の上にのるたびにマウス位置に★(※)が生成されるというflash。

(※1 MC。1レイヤー1~10フレームまで2回転、2レイヤー11フレームでthis.removeMovieClip();を記述

まずメインシーンの第1アクションフレームに深度兼インスタンス変数num=0;で初期化。

四角形(塗りなし)の線のみをボタンシンボル化し、以下のアクションを設定。
on(rollover){       //ロールオーバーするたびに
num++;
mcname="mc"+num; //mc1とかmc2になるように
this.attachMovie("star",mcname,num); //ウィンドウ→★シンボル右クリック→リンケージ→starという識別子を
                           つけ、mcnameというインスタンス名をつけ、あとからできたもんが上に
                           くるような設定。
this[mcname]._x=_root._xmouse;
this[mcname]._y=_root._ymouse; //これをthis.mcname._xとしてしまうとルートにあるmcname
                          (存在しない)のX座標という意味になってしまう。
}

ちなみにfunction関数で書くなら

on(rollover){ //ボタンアクション
pika();
}

function pika(){
num++ から _root._ymouse;まで  //メイン第1フレーム
}

「覚えること」
・attachMovie(シンボル識別子,ムービーインスタンス名,深度);

・↑で作ったMCのパスは↓ように書く。
this[mcname]._x

・function xxx(){ ・・・} で定義(メインシーン第1フレーム)しxxx();で使う。



やはり基本は原理から理解しておくのが大事★

この知識はあとあと役にたつであろう。

※日記は一応公開はしてますが、自分のためにかいてるので説明とかまじ分かりにくいと思います。

もしちゃんと説明してほしいというリクエストがあればわかりやすく書きます。(リクコメントかメッセ送ってください)