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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     サブメニューの表示・非表示
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
113013
Åê¹ÆNo.21838
投稿日時: 2005-12-1 14:00
新米
居住地: 京都
投稿: 4
使用環境:
Winxp,Flash8
サブメニューの表示・非表示
サイトのナビゲーションメニューをフラッシュで作りました。
サイトURLはこちらです。
http://www.zero-corp.co.jp/

構造は下記の通りです。
1)アクションレイヤー
・1フレームにstop();設置
2)ラベルレイヤー
・2フレームから10フレームにボタン1ラベルをつける。
3)ボタン1レイヤー
・1フレームにメインメニュー1のボタン設置
ボタンのスクリプト
 on (rollOver) {
gotoAndStop("ボタン1");
}
・2フレームにメインメニュー1に対するサブメニューのボタン設置
4)ヒット1領域レイヤー
・2フレームに透明ボタン設置
ボタンのスクリプト
on (rollOver) {
gotoAndStop(1);
}
5)以下、メインメニューの数だけ3)と4)を繰り返す。
6)ボタンレイヤー
・1フレームから最終フレームまでメインメニューのボタン設置

ロールオーバーでサブメニューが表示され、ヒット領域にマウスが移動すると(ロールアウト)もとに戻る構造になっています。
(ヒット領域とは、各メインメニューとサブメニューの周りの領域です)

通常の使用では問題ないのですが、ヒット領域が小さいためか、何らかの偶然でマウスがメインメニューをかすり、ヒット領域に反応しないことがあり、サブメニューが表示されっぱなしになります。

そこで、2フレームに何秒か経過したら、1フレームに戻るというスクリプトを入れたいのですが、うまくいきません。

やってみたのは、ボタン1レイヤーの2フレームに下記のスクリプトを入れました。
//フレームアクション
timerObj = new Object();
timerObj.timeout = function() {
clearInterval(timerID);
trace("10秒待った");
trace([currentFrame(), currentFrame().gotoNextFrame()]); // 確認用に追加
currentFrame().gotoNextFrame()();};
var timerID = setInterval(timerObj, "timeout", 10000);

ところが、10秒後に
10秒待った
undefined,undefined
と言う出力結果が出てきて、1フレームには戻りません。
どのようにしたら良いでしょうか。
よろしくお願いします。
ひろゆき
Åê¹ÆNo.21839
投稿日時: 2005-12-1 14:20
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: サブメニューの表示・非表示
引用:
そこで、2フレームに何秒か経過したら、1フレームに戻るというスクリプトを入れたいのですが、うまくいきません。

おそらく「10秒後に次のスライドへ」を参考にされたのだと思いますが、
このスレッドでのスクリプトは、スライドプレゼンテーションでのスクリプトなので、
そのままスクリプトを使っても、上手く行かないと思います。

this.stop();
timerObj = new Object();
timerObj.timeout = function() {
	clearInterval(timerID);
	trace("10秒待った");
	gotoAndStop(1);
	// あるいは
	// prevFrame();
};
var timerID = setInterval(timerObj, "timeout", 10000);
では、いかがでしょう?

あるいは、リンク先の投稿をよく読んでいくと、
フラッシュを一定時間停止させる」というスレッドもあります。
ここにある方法を用いれば、
this.stop();
var timerID = setInterval(timeout, 10000);
function timeout() {
	clearInterval(timerID);
	this.gotoAndStop(1);
}
でも、いいのではないかと思います。


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

Fla4man
Åê¹ÆNo.21840
投稿日時: 2005-12-1 14:55
職人
居住地: かまくら
投稿: 517
使用環境:
WinMe,Win2000,
Flash4,アズさん,大仏、delphi
Re: サブメニューの表示・非表示
Flash8ならsettimeoutがいいんじゃないですか?


----------------
通常のハンドル名:×○○× ねた回収モードに突入 現在1/100

森 巧尚
Åê¹ÆNo.21842
投稿日時: 2005-12-1 15:27
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: サブメニューの表示・非表示
Fla4manさんはFlash 8を持っておられないのようなのでわからなかったと思いますが、settimeoutではFlash8では動きません。

setTimeoutだと一応動いているような感じですが、アクションパネルでシンタックスカラーとして認識されませんし、ヘルプにも載っていません。正式にサポートしていると公開されている関数ではないようなので、今は使わないほうがいいでしょう。


----------------
森 巧尚
http://www.ymori.com

113013
Åê¹ÆNo.21843
投稿日時: 2005-12-1 16:24
新米
居住地: 京都
投稿: 4
使用環境:
Winxp,Flash8
Re: サブメニューの表示・非表示
こちらの方法で動作しました。
大変助かりました。
本当に、ありがとうございました。

引用:
ひろゆきさんは書きました:
おそらく「10秒後に次のスライドへ」を参考にされたのだと思いますが、
このスレッドでのスクリプトは、スライドプレゼンテーションでのスクリプトなので、
そのままスクリプトを使っても、上手く行かないと思います。

this.stop();
timerObj = new Object();
timerObj.timeout = function() {
	clearInterval(timerID);
	trace("10秒待った");
	gotoAndStop(1);
	// あるいは
	// prevFrame();
};
var timerID = setInterval(timerObj, "timeout", 10000);
では、いかがでしょう?
Fla4man
Åê¹ÆNo.21844
投稿日時: 2005-12-1 16:56
職人
居住地: かまくら
投稿: 517
使用環境:
WinMe,Win2000,
Flash4,アズさん,大仏、delphi
Re: サブメニューの表示・非表示
そうなんですか。情報ありがとうございました。

Flash一般の説明としては公式サポートされるまで
「better」という言い方はしないことにします。
実際setintervalでもちゃんと組めば問題ないわけですし

しかしFlash8正式版プレーヤーではたしかに実装されている機能であり
除外される可能性はないので
私は有効活用していこうとおもます。


----------------
通常のハンドル名:×○○× ねた回収モードに突入 現在1/100

野中文雄
Åê¹ÆNo.21849
投稿日時: 2005-12-1 18:52
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: サブメニューの表示・非表示
非ドキュメントの機能については、一般的にはいわれるとおりだと思います。ただ、setTimeout()/clearTimeout()関数は、正規にサポートされるようです(引用したFlash 8 LiveDocsに、2005年9月13日付でコメントされているFrancis Cheng氏は、Macromediaの方です)。

もっとも、簡単な説明しかありませんので、細かい点については、よくわからない部分が少なくありません。
引用:
森 巧尚さんは書きました:
setTimeoutだと一応動いているような感じですが、アクションパネルでシンタックスカラーとして認識されませんし、ヘルプにも載っていません。正式にサポートしていると公開されている関数ではないようなので、今は使わないほうがいいでしょう。


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

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

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