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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     hitTest判定が出来ているのに、onReleaseが実行されない
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ishiishi
Åê¹ÆNo.39382
投稿日時: 2008-7-1 15:39
新米
居住地:
投稿: 3
使用環境:
hitTest判定が出来ているのに、onReleaseが実行されない
はじめまして。
現在Flash8(Windows環境)を使用してWEBサイトを構築しています。

Aというムービークリップの中に、6つのムービクリップを配置し
それぞれにインスタンスを割り当てています。

例)bt01,bt02,bt03,bt04,bt05,bt06

_rootのタイムラインにはasファイルを読み込んで、以下のようにgetUrlの記述を管理しています。

ここから-----------------
_root.A.bt01.onRelease = function() {
getURL("http://www.domain.com/page1/", "_blank");
};
以下省略。
ここまで-----------------

ここで、Aというムービークリップを、最初からステージに配置している場合は、問題なく指定したリンクに移動できます。

ただ、Aというムービークリップの一部をステージから外に配置して、Aの一部をロールオーバすると、Aの全体がステージに表示されるという動きをつけると、Aの中にあるbt01やその他をonReleaseしてもページに移動できなくなります。

そこで、hitTestができているのかと思い試したところ、ロールオーバー、ロールアウトの判定はできているようです。

また、ムービークリップの深度が関係あるのかと、思いtraceで深度を調べたところ、深度のみが、前者と後者では異なるようです。

そこで後者の、bt01,bt02,bt03,bt04,bt05,bt06の深度を前者にあわせてあげればよいのかなと思い、swapDepthsを使用してレベルをそろえたのですが、やはりonReleaseのみが実行されません。

ちなみにムービークリップAをステージに表示させる動きは以下の通りです。

ここから--------
A._y = -480;
var easing:Number = 0.5;
var targetYA:Number = 0;
var targetYAback:Number = -480;

A.onRollOver = function () {
A.onEnterFrame = function () {
var vyA:Number = (targetYA - A._y) * easing;
A._y += vyA;
};
};
A.onRollOut = function () {
A.onEnterFrame = function () {
var vyAback:Number = (targetYAback - A._y) * easing;
A._y += vyAback;
};
};
ここまで--------

どなたか原因をご存じのかた、アドバイスいただけますと幸いです。
ひろゆき
Åê¹ÆNo.39384
投稿日時: 2008-7-1 17:15
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: hitTest判定が出来ているのに、onReleaseが実行されない
アカウント編集」で、編集環境は書いておきましょう
プロフィール・使用環境記入のお願い
#その他の欄に記入すれば、使用環境として表示されます。

大変申し訳ありませんが、何をなさって何が問題なのか、
一読しただけではよく分かりません。
スクリプトも、hitTestに関するスクリプトが一切記載されていないようなので、
具体的に何を検証すればよいのか、よく分かりません。


----------------
質問する際は、回答者に具体的な情報を与えてください。

ishiishi
Åê¹ÆNo.39387
投稿日時: 2008-7-1 17:43
新米
居住地:
投稿: 3
使用環境:
Re: hitTest判定が出来ているのに、onReleaseが実行されない
ご指摘ありがとうございます。

まずやりたいことは。

●Aというムービークリップの中に、複数のムービクリップをレイアウトしボタンとして使用する。

●Aというムービークリップを一部、ステージの外に配置し、Aをロールオーバした際に、Aの全体がステージに表示されるように、Aを移動。

これは、達成できています。

●ステージに表示されたAの中にある、複数のムービクリップをクリックすると、各ページに移動する。

ここができていません。

以下hitTestのスクリプトを、Aの中にある、各ムービークリップに書き込んでいます。

ここから-----------------
onClipEvent (load) {
bOut = true;
}
onClipEvent (enterFrame) {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
if (bOut == true) {
trace("rollOver6");
}
} else {
if (bOut == false) {
trace("rollOut6");
}
}
}
ここまで-----------------

「プロフィール・使用環境記入のお願い」こちらは、使い方がよくわかっていないので、少し詳しくみてみます。ご迷惑をおかけしました。


----------------
使用環境
Pro8.0
WinXP pro
FlashPlayer 7.0?10

野中文雄
Åê¹ÆNo.39388
投稿日時: 2008-7-1 18:05
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: hitTest判定が出来ているのに、onReleaseが実行されない
ボタン用のマウスイベントは、ひとつのインスタンスが排他的に受取ります。「onハンドラを使わずにロールオーバー/ロールアウトを検出する」をお読みください。
引用:
ishiishiさんは書きました:
Aというムービークリップの中に、6つのムービクリップを配置し
それぞれにインスタンスを割り当てています。

例)bt01,bt02,bt03,bt04,bt05,bt06
...[中略]...
_root.A.bt01.onRelease = function() {
getURL("http://www.domain.com/page1/", "_blank");
};

...[中略]...
ちなみにムービークリップAをステージに表示させる動きは以下の通りです。
// ...[中略]...
A.onRollOver = function () {


----------------
 

ひろゆき
Åê¹ÆNo.39389
投稿日時: 2008-7-1 18:08
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: hitTest判定が出来ているのに、onReleaseが実行されない
ボタン内に、ボタンを配置しても、内包されたボタンは機能しません。
スライドメニュー上にリンクボタンをつけたい

onClipEvent (mouseDown) {
	if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
 		getURL("http://www.domain.com/page1/", "_blank");
 	}
}
を各ボタンのムービークリップ・アクションに追加記述する必要があります。


----------------
質問する際は、回答者に具体的な情報を与えてください。

ishiishi
Åê¹ÆNo.39391
投稿日時: 2008-7-1 19:05
新米
居住地:
投稿: 3
使用環境:
Re: hitTest判定が出来ているのに、onReleaseが実行されない
ひろゆきさん

アドバイスありがとうございました!
思いどおりに動きました。

まだまだ勉強がたりませんね。精進します。
また何かありましたら、お聴きすることもあるかと思いますが
その時はどうぞ、よろしくお願いいたします。


----------------
使用環境
Pro8.0
WinXP pro
FlashPlayer 7.0?10

ひろゆき
Åê¹ÆNo.39392
投稿日時: 2008-7-1 19:12
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: hitTest判定が出来ているのに、onReleaseが実行されない
アカウント編集」で、編集環境は書いておきましょう
プロフィール・使用環境記入のお願い
#その他の欄に記入すれば、使用環境として表示されるはずです。


----------------
質問する際は、回答者に具体的な情報を与えてください。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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