いつもお世話になっております。
よくApple(Mac)のパソコンで見かけるWindowsでいうスタートメニューのような役割を果たすドッグがデスクトップ画面中央下に見られます。
あれはマウスを上に置くと虫眼鏡のように大きくなったり小さくなったりするようになっているのですが、Flashでそれと同じことが出来ないかと考えております。
Flashで作成した場合、Home、Diary、Photoなどと書かれた四角い形のボタンを複数均等に一列に配置し、その各ボタンの上にマウスが乗ると虫眼鏡の様に拡大されるといった仕組みを作りたいのですがどうすれば宜しいのでしょうか。
ActionScriptはまだ慣れていないのでそれ以外の作成方法であれば知りたいのですが、ActionScriptで作った例を一度拝見したことがあるためActionScriptでも可能と思います。もしよろしければActionScriptとそうでない方法とありましたらご教授下さい。
No.2ベストアンサー
- 回答日時:
なんとか近い物が不格好ながらできました~~!
今週はほとんど時間が取れなかっため,ご質問を見て20分ぐらい毎日考えましたが,
なんとか近い物ができたように思います。
実は私もそのドッグを友人の家で見たとき,「これFlashで作りたい!」と思ったのです。
Macのドッグと言うより,OS X のドッグですよね。
でも,私はMacを持っていません。
なので,
http://home.cogeco.ca/~raduking/
から,RKLauncher というものをDLして,動きを観察してみました。
おおまかに書くと,マウスがある範囲に入ったとき,
アイコンの最初の位置を中心に,下のグラフのような動きをするように見えます。
基準点はアイコンの初期x座標です。
まずは,左右に動く距離
初期this._x
□□□□□□□□■□□□□□□□□
□□□□□□□□■□□□□□□□□↑
□□□□□□□□■□□□□■■■■ xに移動する距離(右)
□□□□□□□□■□□□■□□□□
□□□□□□□□■□□■□□□□□
□□□□□□□□■□■□□□□□□
□□□□□□□□■■□□□□□□□
■■■■■■■■■■■■■■■■■→マウスのx座標
□□□□□□□■■□□□□□□□□
□□□□□□■□■□□□□□□□□
□□□□□■□□■□□□□□□□□
□□□□■□□□■□□□□□□□□
■■■■□□□□■□□□□□□□□ xに移動する距離(左)
□□□□□□□□■□□□□□□□□↓
□□□□□□□□■□□□□□□□□
マウスが初期位置に近ければ近いほど,元の初期座標に近く,
マウスが左や右に離れるほど,右や左にアイコンが動く。
次に,大きさ
初期this._x
□□□□□□□□■□□□□□□□□
□□□□□□□■■■□□□□□□□↑
□□□□□□■□■□■□□□□□□アイコンの大きさ(大)
□□□□□■□□■□□■□□□□□
□□□□■□□□■□□□■□□□□
■■■■□□□□■□□□□■■■■←元のサイズ
□□□□□□□□■□□□□□□□□
■■■■■■■■■■■■■■■■■→マウスのx座標
□□□□□□□□■□□□□□□□□
□□□□□□□□■□□□□□□□□
□□□□□□□□■□□□□□□□□
□□□□□□□□■□□□□□□□□
□□□□□□□□■□□□□□□□□アイコンの大きさ(小)
□□□□□□□□■□□□□□□□□↓
□□□□□□□□■□□□□□□□□
マウスが初期位置に近ければ近いほど,アイコンは大きくなり,
マウスが左や右に離れるほど,元の大きさに戻る。
これを式にすれば,なんとなくそれらしいものができました。
--手順-----
///////////////////////////////////////////////////////////////////////////////////////////////
まず同じようなサイズのムービークリップを6~12個ぐらい作り,
真横にそして等間隔に並べてください。
「整列」でちゃんと並べないとまちまちな動きになります。
そして,
タイムラインのスクリプトとして,次のように変数の定数を定めておきます。
-----------------------------
//動くスピードを設定(可変)
spd = 0.3;
//左右に移動する距離を設定(可変)
idou = 40;
//大きくなる範囲を設定(可変)
hani = 80;
//y座標エリアの設定(可変)
hani_y = 30;
//拡大率の設定(可変)
kakudai = 2;
----------------------------
そして,6~12個ぐらい並べたムービークリップ1つ1つに,
以下のようなスクリプトを書けばOKです。
すべてのムービークリップに同じ事をかけば良いです。
----------------------------
onClipEvent (load) {
scl_x = this._xscale;
scl_y = this._yscale;
pos_x = this._x;
pos_y = this._y;
}
onClipEvent (enterFrame) {
if (_root._ymouse-pos_y<_root.hani_y && pos_y-_root._ymouse<_root.hani_y) {
if (_root._xmouse<pos_x-_root.hani) {
this._x += (pos_x+_root.idou-this._x)*_root.spd;
this._xscale += (scl_x-this._xscale)*_root.spd;
this._yscale += (scl_x-this._yscale)*_root.spd;
} else if (_root._xmouse>=pos_x-_root.hani && _root._xmouse<pos_x) {
this._x += ((pos_x-_root._xmouse)*_root.idou/_root.hani+pos_x-this._x)*_root.spd;
this._xscale += (((_root._xmouse-pos_x)*(_root.kakudai-1)/_root.hani+_root.kakudai)*scl_x-this._xscale)*_root.spd;
this._yscale += (((_root._xmouse-pos_x)*(_root.kakudai-1)/_root.hani+_root.kakudai)*scl_y-this._yscale)*_root.spd;
} else if (_root._xmouse>=pos_x && _root._xmouse<=pos_x+_root.hani) {
this._x += ((pos_x-_root._xmouse)*_root.idou/_root.hani+pos_x-this._x)*_root.spd;
this._xscale += (((_root._xmouse-pos_x)*(1-_root.kakudai)/_root.hani+_root.kakudai)*scl_x-this._xscale)*_root.spd;
this._yscale += (((_root._xmouse-pos_x)*(1-_root.kakudai)/_root.hani+_root.kakudai)*scl_y-this._yscale)*_root.spd;
} else if (_root._xmouse>pos_x+_root.hani) {
this._x += (pos_x-_root.idou-this._x)*_root.spd;
this._xscale += (scl_x-this._xscale)*_root.spd;
this._yscale += (scl_y-this._yscale)*_root.spd;
}
} else {
this._x += (pos_x-this._x)*_root.spd;
this._xscale += (scl_x-this._xscale)*_root.spd;
this._yscale += (scl_y-this._yscale)*_root.spd;
}
}
----------------------------
かなり幼稚っぽいスクリプトでゴチャゴチャしていますが,
上で書いたグラフの範囲を4分割にして,
それぞれの範囲でそれぞれのムービークリップが動くようにしたものです。
もっと洗練した書き方をすれば,もっと簡素になるとおもいますが,
とりあえずこれが精一杯でした。
グラフで書いたように,一次関数しか使っていません。
上のグラフは3次曲線にして,
下のグラフは上に凸の2次曲線にすれば,もっと雰囲気が出るのかもしれませんが,
ちょっと,数学的オツムが回りません。
タイムラインの変数設定の (可変) の所は,ちょうど良いように調節してください。
アイコンムービークリップの大きさや,間隔や,ムービーサイズによって,少しずつ変わると思います。
できたムービークリップに,
on (release) {
//ここに何かスクリプトを書く
}
を加えるとボタンのように動作します。
もう少し良いように動かすには,なんとかこの先を考えてみてください。
ここまででも,オツムがヨレヨレです。
いつも大変お世話になっております。
今回、MaC OSのドッグと同じ物を作りたいとのご質問をさせて頂いたのですが、結果私の考えていたものイメージしたものそのものになっておりました。
涙があふれ出るほど、感謝しております。
また、今週は大変御多忙だったとのこと。
お忙しい中、図解説含めあそこまでご丁寧にご説明・ご指導を戴き、大変感謝を申し上げます。
本当にどうもありがとうございました。
いつも御質問ばかりで大変申しわけございません。
ありがとうございました。
No.1
- 回答日時:
>虫眼鏡のように大きくなったり小さくなったりするようになっているのですが
拡大・縮小されると言うことでしょうか?(違っていたらごめんなさい)
ActionScriptでなくても出来ますよ。^^
ボタンシンボルの「オーバー」「ダウン」を「アップ」の絵柄より拡大・縮小して作ればいいと思います。
アドバイスありがとうございます。
今回、初めに初めに試したのが、上記と同じ内容でした。ボタンの動き的には左右にあるボタンとの動きの連携がなかなかうまく作り出せず、ボタンクリップだけの作業では少し、限界があると思い色々試行錯誤していました。ほかにもあるか調べてみようと思います。ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- メガネ・コンタクト・視力矯正 眼鏡をしていると手元が見えにくい。 2 2022/06/26 09:38
- Windows 10 Googleサイトのサイト内検索(虫眼鏡アイコン、検索ボックス)について 1 2022/04/08 12:16
- メガネ・コンタクト・視力矯正 コンタクト購入について 娘が近視のようで、眼科を受診しました。 眼鏡でなくコンタクトが良いと言ってい 5 2023/07/11 15:45
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- メガネ・コンタクト・視力矯正 老眼鏡について 50代男です。これまで視力が良く眼鏡屋さんに行ったことがありません。 しかし数年前か 6 2023/06/28 06:41
- メガネ・コンタクト・視力矯正 中学1年生 初めての眼鏡の度数 3 2022/07/13 20:12
- その他(健康・美容・ファッション) ブルーライトカット率の高い眼鏡を作れるお店を教えて下さい 1 2023/02/10 17:43
- その他(健康・美容・ファッション) ブルーライトカット率の高い眼鏡を作れるお店を教えて下さい 4 2023/02/10 17:45
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- Windows 8 bingのアイコン削除方法 2 2023/03/13 09:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
else if文の順序を変えることに...
-
node* ってなんなのでしょうか?
-
Excel VBAで読み込んだテキスト...
-
python ボタンを押すと複数の関...
-
PYTHONのtkinterについて
-
PythonでSetWindowPosを使うに...
-
FLASHで「かるた」を作りたいの...
-
オブジェクトのランダムな位置表示
-
二分探索木のプログラム
-
プログラミング、アーキテクチ...
-
photoshopで書いた四角の枠の中...
-
VBAで改行の入ったデータの正規...
-
五芒星は、悪魔崇拝とどういう...
-
ExcelでVBAを利用してオートシ...
-
C言語でのマウスを移動とマウス...
-
RPG(AS400)の本、サイトってあ...
-
HTMLのtextbox類に文字を残す
-
VB6.0 でメニューを作りたいん...
-
UWSCのBTN関数について。
-
YOASOBI
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
四乗根を英語で言うと・・・
-
pythonの画像の貼り付けについて
-
SNMPの標準MIBについて
-
PythonでSetWindowPosを使うに...
-
pythonのグローバル変数
-
ボタンの上にマウスを置くと虫...
-
関数をプロパティとして代入する際
-
ADに参加していないPCからADサ...
-
レイヤーに配置されたムービー...
-
[FlashMX2004]動的にファイルを...
-
メニュースクロール
-
パーセントで配置したフラッシ...
-
Flashの表示サイズを動的に変更...
-
スライドショーのフェードイン...
-
swfがきちんと動作しない!
-
フルウィンドウのFlash Firefox...
おすすめ情報