Actionscript初心者です。
勉強のため、以下のURLにあるActionscript2.0のFlashをActionscript3.0に書き換えたいと思っています。
http://allabout.co.jp/gm/gc/66814/
左側にリースのパーツ、右に素のままのリースが配置されています。パーツはそれぞれ、リボン付きベル(インスタンス名「bellBig」)、松ぼっくり (インスタンス名「matu」)、小さいベル(インスタンス名「bellSmall」)と指定してあります。この3つのアイテムをドラッグドロップすることでリースを飾り付けていきます。
インスタンスをドラッグ&ドロップする所まではできたのですが、
松ぼっくりと小さいベルをドラッグした際にインスタンスを複製するところでつまずいています。
あまりにも初歩的な質問で恐縮ですが、ご教授お願いいたします。
/*////////////////////大きいベル/////////////////////*/
// ドラッグ開始
bellBig.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown1);
function mouseDown1(event:MouseEvent):void{
bellBig.startDrag();
}
// ドラッグ終了
bellBig.addEventListener(MouseEvent.MOUSE_UP,mouseUp1);
function mouseUp1(event:MouseEvent):void{
bellBig.stopDrag();
}
/*////////////////////まつぼっくり/////////////////////*/
// ドラッグ開始
matu.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
function mouseDown(event:MouseEvent):void{
matu.startDrag();
}
//ドラッグ終了
matu.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
function mouseUp(event:MouseEvent):void{
matu.stopDrag();
}
/*////////////////////小さいベル/////////////////////*/
// ドラッグ開始
bellSmall.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown2);
function mouseDown2(event:MouseEvent):void{
bellSmall.startDrag();
}
// ドラッグ終了
bellSmall.addEventListener(MouseEvent.MOUSE_UP,mouseUp2);
function mouseUp2(event:MouseEvent):void{
bellSmall.stopDrag();
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
なるべく元のサンプルと同じことを
なるべく元と同じような方法で
なるべく簡単にするなら次のような感じになると思います。
以下の説明ではマツボックリを代表にします。
まず元のサンプル(act46.fla)で
パブリッシュ設定 の スクリプト 設定を ActionScript 3.0 にして,
root(メインのタイムライン) の フレーム1 に書かれているスクリプト
count = 1;
これを次のように変更します。
var count:uint = 1;
次に
「ライブラリ」で マツボックリのムービークリップシンボル「matu」 を選択して
右クリックなどから「プロパティ」で「シンボルプロパティ」パネルを表示させ,
リンケージ の欄で
□ ActionScript 用に書き出し
にチェックを入れ,
クラス(C):[ ]
の欄でクラス名を付けます。
ここでは例えば
「Matu」 というクラス名を付けることにします(【下図】↓)。
そして
ライブラリ内のシンボルの「matu」でも良いですし
ステージ上のインスタンス「matu」でも良いので,
そのムービークリップ内のタイムラインの編集に入ります。
ムービークリップ内のタイムラインは1レイヤーだけなので
スクリプトを書くレイヤーでも追加して2レイヤーにし
その新レイヤーの フレーム1 に次のようなスクリプトを書きます。
-----------------------------
// ドラッグ開始
this.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
function mouseDown(event:MouseEvent):void {
root["matu" + root.count] = new Matu();
root["matu" + root.count].x = this.x;
root["matu" + root.count].y = this.y;
root.addChild(root["matu" + root.count]);
this.startDrag();
}
//ドラッグ終了
this.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
function mouseUp(event:MouseEvent):void {
this.stopDrag();
root.count++;
}
-----------------------------
以上でマツボックリに関しての作業は終わりです。
考え方や使い方によってはスクリプトの書く場所やその内容なども変わると思いまが
そういった無数の場合は書けませんし
ある程度の場合は書けたとしても問題がややこしくなるので
「なるべく元と同じ」 を尊重したものを回答しました。
この回答への補足
たいへん親切で丁寧な説明ありがとうございます。
教えていただいたものを参考に、自分なりにスクリプトを書いてみました。
addChildでインスタンスを増やすところまではできたのですが、
今度は増えたインスタンスをドラッグ&ドロップできるようにできませんでした。
var count:uint = 1;
count++
の使い方がわかっていないようです。
度々で申し訳ございませんが、もう一度ご教授お願いいたします。
-----------------------------------
//インスタンスの作成
var newMatu:MovieClip = new Matu();
var count:uint = 1;
//プロパティの設定
newMatu.x = 50;
newMatu.y = 180;
//イベント処理
matu.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
function mouseDown(evt:MouseEvent):void{
matu.startDrag();
addChild(newMatu);
}
matu.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
function mouseUp(evtt:MouseEvent):void{
matu.stopDrag();
root.count++;
}
-----------------------------------
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript addEventListener()でリスナー関数に名前を付ける構文を教えてください 1 2023/07/01 17:31
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- Java インスタンス ダウンキャストについて以下の解釈であっているか教えて欲しいです。 サブクラスをスーパー 1 2022/03/27 18:53
- Illustrator(イラストレーター) プロパティパネルを元に戻せますか 3 2022/05/07 16:44
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Photoshop(フォトショップ) 【Photoshop】画像拡大時に急激に画面外まで拡大してしまうのを制御したい 1 2023/08/25 03:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SNMPの標準MIBについて
-
100点でクリアする簡単なモグラ...
-
else if文の順序を変えることに...
-
四乗根を英語で言うと・・・
-
複数の外部SWFの読み込みする場...
-
経過時間を計るには
-
ボタンの上にマウスを置くと虫...
-
python ボタンを押すと複数の関...
-
2つのMC(ドラッグで移動可能...
-
テキストボックスにセルの値を...
-
VBAで改行の入ったデータの正規...
-
プログラミング、アーキテクチ...
-
テキストボックスの中身をリセ...
-
【Photoshop】レイヤー効果の境...
-
テキストエリア内の文字列にリ...
-
ipconfig /releaseって何ですか?
-
【VB.NET】別Formのボタンが押...
-
【ExcelVBA】ファイル名をセル...
-
フォームのテキストの入力数字...
-
Access2000 実行時エラー '3061':
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
四乗根を英語で言うと・・・
-
pythonの画像の貼り付けについて
-
SNMPの標準MIBについて
-
PythonでSetWindowPosを使うに...
-
pythonのグローバル変数
-
ボタンの上にマウスを置くと虫...
-
関数をプロパティとして代入する際
-
ADに参加していないPCからADサ...
-
レイヤーに配置されたムービー...
-
[FlashMX2004]動的にファイルを...
-
メニュースクロール
-
パーセントで配置したフラッシ...
-
Flashの表示サイズを動的に変更...
-
スライドショーのフェードイン...
-
swfがきちんと動作しない!
-
フルウィンドウのFlash Firefox...
おすすめ情報