トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     ScrollPane内のボタンにイベントリスナーをつけるには?(AS3.0)
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
imaging
Åê¹ÆNo.39361
投稿日時: 2008-6-29 16:00
新米
居住地:
投稿: 8
使用環境:
ScrollPane内のボタンにイベントリスナーをつけるには?(AS3.0)
AS3.0で、ScrollPane内のMCにイベントリスナーをくっつける方法が分かりませんでした。


通常は、このようにするとおもうのですが、
(仮にインスタンスをmc1とします)
***************************************
mc1.addEventListener(MouseEvent.CLICK,sectionClickHandler);
***************************************

これを、ScrollPane内のMCに割り当てたいのです。
で、自分なりにやってみたのが以下です。
(ScrollPaneのインスタンス名を_spとし、
対象のインスタンスをmc1とします)
***************************************
MovieClip(_sp.content)["mc1"].addEventListener(MouseEvent.CLICK,sectionClickHandler);
***************************************

しかし、うまくいきませんでした。
他の方法もわからず、行き詰ってしまいました。

お分かりになる方いらっしゃいましたら、
教えていただけませんか?
よろしくお願いいたします。


※言い回しがおかしかったり、
既出の問題だった場合は、申し訳ありません(一応検索しました)。


環境:WinXP:
永井勝則
Åê¹ÆNo.39364
投稿日時: 2008-6-29 20:32
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: ScrollPane内のボタンにイベントリスナーをつけるには?(AS3.0)
ヘルプのScrollPaneコンポーネントのcompleteイベントとcontent変数の記述を見ながらやってみました。
ポイントは、コンポーネントの操作は自分で考えてもしかたないので、ヘルプを調べることです。

//メインのタイムライン。Test.swf内にはmc1というインスタンス名のムービークリップが含まれている

import fl.containers.ScrollPane;

var url:String = "Test.swf";
var myScrollPane:ScrollPane = new ScrollPane();
var targetMC:MovieClip;

myScrollPane.addEventListener(Event.COMPLETE, completeListener);
myScrollPane.load(new URLRequest(url));

function completeListener(event:Event):void {
	var cont:DisplayObject = myScrollPane.content;
	//trace(cont)
	myScrollPane.removeEventListener(Event.COMPLETE, completeListener);
	myScrollPane.setSize(cont.width*2, cont.height*2);
	var newX:uint = (stage.stageWidth - myScrollPane.width)/2;
	var newY:uint = (stage.stageHeight - myScrollPane.height) /2;
	myScrollPane.move(newX, newY);
	addChild(myScrollPane);

	//trace(cont["mc1"]);
	if (cont.hasOwnProperty("mc1")) {
		//trace("OK")
		targetMC = MovieClip(cont).mc1;
		//trace(targetMC)
		targetMC.addEventListener(MouseEvent.CLICK,onClickListener);
	}
}

function onClickListener(evt:Event):void {
	//trace(evt.target is MovieClip)
	//trace(evt.target,evt.target.name);
	evt.target.rotation++;
}


----------------
永井勝則:
himco.jp :

imaging
Åê¹ÆNo.39375
投稿日時: 2008-6-30 14:55
新米
居住地:
投稿: 8
使用環境:
Re: ScrollPane内のボタンにイベントリスナーをつけるには?(AS3.0)
ご返答ありがとうございます!!

ご回答いただいたとおりやったらできました!
なるほど、こうやればよかったんですね。

ScrollPaneをソフト上で作ってどうにかしようと思っていたのですが、AS側から作成すれば制御できる、ということですね。

だいぶAS3.0の雰囲気がつかめてきました。
しかし、ひとつの目的に対していろんな方法があるのが、ちょっと記述を間違うとすぐ迷宮入りするような感覚があってとても難しいです・・;
いまひとつコツというか、感覚で理解できていないと痛感するのですが、これは数をこなして慣れるしかないのでしょうね・・。


がんばって精進します!ありがとうございました!!



環境: (AS3.0)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops