actionscript3.0についての質問です。
イラストレーターのテキストツールのように
任意の文字オブジェクトを複数生成し、生成された任意の文字オブジェクト
をドラッグで移動する処理をactionScriptで実行したいと考えています。
現在actionscript3.0で行いたいと考えている一連の流れは以下の通りです。
1.ステージに配置したテキストフィールに任意の文字列を入力
2.入力された文字列を参照してムービークリップ内のダイナミックテキストに出力。
3.ステージにボタンを配置し、それを押すことでステージに1.2の手順によって作成されたムービークリップが生成。
4.生成されたムービークリップをドラッグすると動かすことができる。
1から3までの内容を下記のようなスクリプトで行いました。
//ダイナミックテキストを内包するためのムービークリップを定義
//埋め込みアセットクラスmcからインスタンスを生成
var word_mc:MovieClip = new mc( );
//ボタンクリックイベントを登録
create_btn.addEventListener( MouseEvent.Click, creClick );
//ボタンクリック時の処理
function creClick( evt:MouseEvent ):void {
//テキストフィールドinputWordに入力されたテキストを変数inputに格納
var input:String = inputWord.text;
//word_mc内に配置したダイナミックテキストoutputWordに入力テキスト内容を出力
word_mc.outputword.text = input;
//word_mcを画面に表示
addChild( word_mc );
}
//word_mcをドラッグで移動させるためのスクリプト
word_mc.addEventListener( MouseEvent.MOUSE_OVER, wordMO );
function wordMO( evt:MouseEvent ):void {
word_mc.addEventListener( MouseEvent.MOUSE_DOWN, wordMD );
word_mc.addEventListener( MouseEvent.MOUSE_UP, wordMU );
}
function wordMD( evt:MouseEvent ):void {
word_mc.startDrag( );
}
function wordMU( evt:MouseEvent ):void {
word_mc.stopDrag( );
}
ひとつのオブジェクトを生成するだけならこれで問題ないのですが、
このスクリプトでは、、"車"、"自転車"、"飛行機"という文字列をそれぞれ内包した変数名もしくはクラス名の違うオブジェクトを生成することが
できません。
埋め込みアセットクラスをあらかじめ複数作っておいて、クラス名を
連番で名づけ、クラス名から動的にオブジェクトを生成すれば
内容の異なるオブジェクトを生成することは可能ですが、
単語を追加するたびに埋め込みアセットクラスを作成しなければ
ならない上、変数名は同じなため、個々のオブジェクトをマウスドラッグすることができません。
イラストレーターのテキストツールのように
任意の文字列を生成した後、個々にマウスドラッグできようにするには
どうしたら良いのでしょうか。
どうかご指導のほど、よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
イベントターゲットをstartDrag()、stopDrag()
するようにすればいいと思います
function wordMD( evt:MouseEvent ):void {
word_mc.startDrag( );
}
function wordMU( evt:MouseEvent ):void {
word_mc.stopDrag( );
}
↓
function wordMD( evt:MouseEvent ):void {
evt.target.startDrag( );
}
function wordMU( evt:MouseEvent ):void {
evt.target.stopDrag( );
}
複数インスタンスを生成できないという所は
var word_mc:MovieClip = new mc( ); を
creClick関数内でやってやればいいだけだと思います
ついでにMOUSE_OVERでやってる
リスナー登録もcreClickの時にしておけば
いいと思いますよ
別にそのリスナー登録は
MOUSE_OVERの度にやらなくても
一回やれば済むような事ですから
迅速かつ丁寧にご指導いただき、本当にありがとうございます。
関数内でインスタンスの生成を行えばいいんですね。
それにしても、ライブラリからオブジェクトをドラッグ
で作成したムービークリップインスタンスなどは、
下層の内容を変更すると全てのインスタンスの表示が
変更されるのに対して、newコンストラクタで生成した場合には、
同じ変数名、同じクラス名なのに生成するごとに異なる
オブジェクトを内包できることが未だ理解できません。
僕の感覚では、2つ目のインスタンスを生成した瞬間に
1つ目のインスタンスの表示も2つ目と同期してしまうように
思えてならないのですが。
もっと勉強して理解を深めなければいけませんね。
リスナー登録のタイミングも「なるほどー」という思いでした。
なんていうか、僕の中ではリスナー登録と関数呼び出しが
同じ処理のような感覚があって、登録することがすなわち
処理を行うという意識のもと、冗長なスクリプトになってしまい
がちです。
リスナー登録はあくまでも登録ということを
あらためて理解することができました。
重ねて御礼申し上げます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Word(ワード) 表の縦罫線を移動するピッチ 1 2022/10/12 12:24
- Java 複数TBLのオブジェクトを1つの変数(オブジェクト)でまとめて管理したい 1 2022/12/17 00:12
- 宇宙科学・天文学・天気 AIが答えた方程式 1 2023/02/20 00:12
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Word(ワード) Word文書のドラッグ操作による配置調整。 1 2022/10/16 19:24
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
for文を使ったボタン
-
VBScriptでMsgBoxのYesNoボック...
-
別のアプリケーションのテキス...
-
漢字入力した値のカタカナ変換...
-
photoshopで書いた四角の枠の中...
-
VBAで改行の入ったデータの正規...
-
else if文の順序を変えることに...
-
五芒星は、悪魔崇拝とどういう...
-
テキストボックスの中身をリセ...
-
楕円の軌道に傾斜をつける方法...
-
コモンダイアログのshowopenに...
-
Fireworks4の写真の切り取り方...
-
SNMPの標準MIBについて
-
upc 7915と mc7915ctは互換性有...
-
画面の範囲選択
-
Flash5:2つのGIF画像でシェイ...
-
オブジェクトのランダムな位置表示
-
DirectXでのicoファイル読み込み
-
【ExcelVBA】ファイル名をセル...
-
四乗根を英語で言うと・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
for文を使ったボタン
-
actionscript3.0 オブジェクト...
-
AS3.0 ループを利用したムービ...
-
複数mcのランダム再生とmc指定...
-
photoshopで書いた四角の枠の中...
-
VBAで改行の入ったデータの正規...
-
YOASOBI
-
VBScriptでMsgBoxのYesNoボック...
-
プログラミング、アーキテクチ...
-
python ボタンを押すと複数の関...
-
別のアプリケーションのテキス...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
五芒星は、悪魔崇拝とどういう...
-
else if文の順序を変えることに...
-
RPG(AS400)の本、サイトってあ...
-
変数に256文字以上のテキストを...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
ダブルクリックと2回クリックの...
おすすめ情報