プロが教えるわが家の防犯対策術!

こんにちは。
リンゲージの設定の仕方について教えてください。
設定したいシンボルを選択し、「ActionScriptに書き出し」と「最初のフレームに書き出し」にチェックを入れたあと、アクションスクリプトは何を選択した状態で、どの階層で設定すればよいのか教えて下さい!
現在作っているのはムービークリップの絵があり、それをリンゲージで複数つくり、ステージ上でマウスに反応し動くものを作っています。スクリプト初心者です。宜しくお願い致します。

A 回答 (2件)

#1です。



>> 上記例2のスクリプトをシーン1のフレームに
>> ペーストしたのですが、
>> 例1と同じように動きません。

えーと,整理しましょう。
例1は動きません。
ボタンを用意して,そのボタンを押すと,BBB1が現れて,放すと消えるというだけのものです。

出した以上,消す必要があるかもしれないと思い,出し入れのスクリプトを1つで済ませるためにはボタンがちょうど良かったので,ボタンを例に "出し入れ" だけを書いたのです。

>> 例2だとステージ上にボタンや
>> ムービークリップを配置しなくても良いのですよね?

そうですね。

ステージ上に,ムービークリップも必要なければ,ボタンも必要ないです。
ついでに,ライブラリでリンケージにしたオブジェクトにもスクリプトは必要ないです(あったら逆に困ります)。

>> なぜ例2が上手く動かないのか教えてください!

よくわかりませんね。
コピーミスかと思い,再びコピーして,Flashの1フレーム目のスクリプトとして貼り付けましたが,無事動きました。
メインアニメーション(_root)の1フレーム目に書くのですよ。ムービークリップの1フレーム目に書くのではなくて。

--------------------------------------
_root.attachMovie("AAA1", "BBB1", 1);
_root.BBB1.onEnterFrame = function() {
_root.BBB1._x = _root._xmouse;
_root.BBB1._y = _root._ymouse;
};
--------------------------------------

こうしたら動きますか?
_rootの1フレーム目のフレームスクリプトは_rootなので_rootを付ける必要は全くないのですが,付けてみました。
ちなみに,
リンケージの識別子が,「AAA1」の場合ですよ。
それと,動くというより,マウスにピッタリひっつく感じになりますよ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
できました!それと原因がわかったような・・・・。
やったことは出来なかったときと今と同じだったのですが、設定対象をリンゲージしたオブジェクトのシンボルの種類「ボタン」に対して行っていたからだと思います。
無事動きました。いつも説明が下手ですみません。次回あればもっと気をつけて書きます。
丁寧に教えていただき、ありがとうございました。

お礼日時:2005/07/08 20:09

回答が遅れましたが,もう解決済みでしょうか。


リンケージ使い方よりその後の方が,具体的に良くわからないので答えにくいです。

かと言って,具体的に質問してくださっても回答できるかどうかは全く自信がありませんが…

基本的に音(Sound)と同じです。
音の場合は,

-例- mySound.attachSound("idName")

で呼び出して再生します。それと同じで、ムービークリップの場合は

-例- myMovieClip.attachMovie("calif", "california", 10);

で呼び出します。

 MC名.attachMovie("識別子", "新しいMC名", 深度);

です。
リンケージで,MCの識別子を AAA1 としたオブジェクトがあったとします。
そのオブジェクトを BBB1 という名前(インスタンス名)にして,
on (press) で _root に呼び出して,on (release)で消去するボタンのスクリプトは以下のようになります。

---例1-------------------------------
on (press) {
_root.attachMovie("AAA1", "BBB1", 1);
_root.BBB1._x = 50;
_root.BBB1._y = 100;
}
on (release) {
removeMovieClip(_root.BBB1);
}
-------------------------------------

---例1の説明-------------------------
on (press) {

   //_rootにリンケージの識別子AAA1を,
   //BBB1というインスタンス名で,深度1に呼び出す。
   _root.attachMovie("AAA1", "BBB1", 1);

   //そのBBB1の x座標を50に,y座標を100にセット
   _root.BBB1._x = 50;
   _root.BBB1._y = 100;
}
on (release) {

   //BBB1を消し去る
   removeMovieClip(_root.BBB1);
}
-------------------------------------

こんな感じでしょうか。
ステージに呼び出してからは,全て新しいインスタンス名(BBB1など)で操作できます。

ボタンではなく,
タイムラインの1フレーム目のフレームに下のように書いても良いです。

---例2------------------------------
_root.attachMovie("AAA1", "BBB1", 1);
BBB1.onEnterFrame = function() {
BBB1._x = _root._xmouse;
BBB1._y = _root._ymouse;
};
------------------------------------

この場合だと,ステージ上にボタンやムービークリップを配置しなくても良いです。

また,
下記参考URLにも,リンケージから呼び出したオブジェクトをマウス追従させるサンプルを置いてくれています。
参考URLの場合は,ライブラリ内のオブジェクトの1フレーム目にすでにスクリプトがしこまれているので,
ステージ上はシンプルなスクリプトだけで済んでいます。

参考URL:http://www.condo.fromc.jp/flash/memo/Chase/Chase …

この回答への補足

お返事ありがとうございます。
質問の仕方が悪くすみませんでした。
ですが上記回答で半分は解決しました!

教えていただいた例1はできたのですが、例2がまさに聞きたかったことです。
シンボルを新規に作成し、(リンゲージの識別子をつけて)上記例2のスクリプトをシーン1のフレームにペーストしたのですが、例1と同じように動きません。例2だとステージ上にボタンやムービークリップを配置しなくても良いのですよね?
もし馬鹿な質問でしたらすみません。なぜ例2が上手く動かないのか教えてください!宜しくお願いします!

補足日時:2005/07/08 17:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!