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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     ロールアウトで逆送り+URLジャンプ
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ERi_yyy
Åê¹ÆNo.12089
投稿日時: 2004-11-7 18:34
新米
居住地:
投稿: 2
使用環境:
Mac OS 9.2.2 / 9.0
Flash MX
ロールアウトで逆送り+URLジャンプ
はじめまして。
FLASH MXアクションスクリプトを勉強しはじめました初心者です。
プログラム経験ゼロで悪戦苦闘しています。><

ロールアウトで逆送りするオブジェクトで、
さらにクリックすると音が鳴って&URLにジャンプする、
という動きを作りたいのですが、ロールアウトで逆送りまでは
できたのですが、その後、
1)クリックした時に音が鳴って
2)URLにジャンプさせる
というソースの書き方がわかりません。

以前、こちらのフォーラムで同じ質問があり、野中さんが回答されていたのですが、
タイトル「ロールアウトで逆戻りするアニメにリンクをつけたい」

この回答の中で、
----------
ロールオーバー/ロールアウトのアニメーションを制御するための
Buttonを配置されたいのでしたら、MovieClipシンボル内に置いて
ください(MovieClipアクションのonハンドラは、Buttonアクション
に移行します)。
----------
と、あったのですが、この方法「MovieClipシンボル内に別個Buttonを配置する」
というのは一般的な作り方なのでしょうか?
(質問者がそうしたいのだったら…という言い方をされてたので、
もしかして他に王道のやり方があるのかな、と思いまして…)

私が参考にしたのは『FLASH ActionScriptスーパーサンプル集』
(ソーテック社)P.77 で以下のソースをムービークリップ内の1フレーム目に書きます。
----------
this.stop();
this.onRollOver = function() {
rollover = true ;
} ;
this.onRollOut = function() {
rollover = false ;
} ;
this.onEnterFrame = function() {
if (rollover) {
this.nextFrame();
} else {
this.prevFrame();
}
} ;
----------

これを見ていると、ボタンオブジェクトを配置しなくてもこのソースに
「クリックしたら音が鳴ってURLにジャンプする」という命令を
書き足して同じことができないのかな、と思っています。
試しに以下のソースの「//ここから下」という行を自分で書き足したのですがだめでした。

そのようなわけで、
1)「ロールアウトで逆送り+URLジャンプ」
ということをしたい場合、どういった方法がスマートなのか教えて下さい。
2)クリックした時に音を鳴らす、というのをこのソース内に書き出して実現することはできるでしょうか。

----------
this.stop();
this.onRollOver = function() {
rollover = true ;
} ;
this.onRollOut = function() {
rollover = false ;
} ;
this.onEnterFrame = function() {
if (rollover) {
this.nextFrame();
} else {
this.prevFrame();
}
} ;
//ここから下
this.onRelease = function() {
mode = ! mode;
if(mode){
getURL("index2.html");
} else {
this.stop();
}
} ;

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

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ロールアウトで逆送り+URLジャンプ
スクリプトをコピーして貼り付けただけでは、動きません。
そのスクリプトが何を意味しているのか、考える必要があるでしょう。

//ここから下
this.onRelease = function() {
rollover = ! rollover;
if(rollover){
getURL("index2.html");
} else {
this.stop();
}
とすると、どうなりますか?

音を鳴らすについては、どうやってならそうとしているのか不明なので、
この記述だけでは・・・。
ERi_yyy
Åê¹ÆNo.12142
投稿日時: 2004-11-9 2:06
新米
居住地:
投稿: 2
使用環境:
Mac OS 9.2.2 / 9.0
Flash MX
Re: ロールアウトで逆送り+URLジャンプ
>ひろゆきさん
ありがとうございます

私、確かに「mode=!mode」って何だろう…と思いながら書いてました。><

でもなんとなく感覚が分ってきました。最初に「rollover」で定義(?)しているのだから、ここの等式と()内も「rollover」を使うということなのかな・・・。

書き直して頂いた分を、日本語訳(?)すると
--------------------------------------------------
this.onRelease = function() {
 //これ(ムービークリップ内)でクリックした時
rollover = ! rollover;
 //?
if(rollover){
 //もしロールオーバーしていたら
getURL("index2.html");
 //index2.htmlにジャンプしなさい。
} else {
 //そうでなければ
this.stop();
 //止まりなさい。
}
--------------------------------------------------
やはり、2行目が分からないです…。

試しに、直して頂いたソースに直してテストしてみましたが、だめでした。ロールオーバー&アウトのアニメーションは上手く動くのですが、クリックしても何も起きません。クリックの命令が何かとぶつかっているような気がします。(以下)

音ですが、短い効果音ですので同じファイル内に取り込んでライブラリから使おうと思います。
音を外部ファイルにすることができると読んだのですが、それだたとタイミングがずれるような気がするので…。
-----------------
this.stop();
this.onRollOver = function() {
rollover = true ;
} ;
this.onRollOut = function() {
rollover = false ;
} ;
this.onEnterFrame = function() {
if (rollover) {
this.nextFrame();
} else {
this.prevFrame();
}
} ;
this.onMouseDown = function() {
rollover = ! rollover;
if(rollover){
this.stop();
getURL("index2.html");
} else {
this.stop();
}
} ;
-----------------
ひろゆき
Åê¹ÆNo.12143
投稿日時: 2004-11-9 2:56
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ロールアウトで逆送り+URLジャンプ
this.stop();
this.onRollOver = function() {
	rollover = true;
}
this.onRollOut = function() {
	rollover = false;
}
this.onEnterFrame = function() {
	if (rollover) {
		this.nextFrame();
	} else {
		this.prevFrame();
	}
}
this.onRelease = function() {
	getURL("index2.html");
}

単にクリックしたら、ジャンプさせたいだけなら、これでいいと思いますが、
なにぶん、確認できる環境にないので、参考程度に考えてください。

『FLASH ActionScriptスーパーサンプル集』をお持ちなのであれば、
関連項目があるはずです。そこもきちんと学習してください。

異なる考えで書かれたスクリプトを合体させたところで、混乱するのがオチです。
野中文雄
Åê¹ÆNo.12145
投稿日時: 2004-11-9 8:54
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ロールアウトで逆送り+URLジャンプ
引用のスレッドで参照された「ロールアウトで逆戻りするアニメーション」で解説されているとおり、MX以降でしたらMovieClipアクションにクリック時のハンドラ(on()イベントハンドラアクション)が記述できます。したがって、Buttonインスタンスが必要とされる訳ではありません。

「MovieClipの中の一部のグラフィック...[中略]...をロールオーバーに反応させたいという場合には」(前掲[注記2])、ムービークリップシンボルの中にButtonインスタンスを配置します。
引用:
ERi_yyyさんは書きました:
以前、こちらのフォーラムで同じ質問があり、野中さんが回答されていたのですが、
タイトル「ロールアウトで逆戻りするアニメにリンクをつけたい」

この回答の中で、
----------
ロールオーバー/ロールアウトのアニメーションを制御するための
Buttonを配置されたいのでしたら、MovieClipシンボル内に置いて
ください(MovieClipアクションのonハンドラは、Buttonアクション
に移行します)。
----------
と、あったのですが、この方法「MovieClipシンボル内に別個Buttonを配置する」
というのは一般的な作り方なのでしょうか?
(質問者がそうしたいのだったら…という言い方をされてたので、
もしかして他に王道のやり方があるのかな、と思いまして…)


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

野中文雄
Åê¹ÆNo.12147
投稿日時: 2004-11-9 9:04
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ロールアウトで逆送り+URLジャンプ
スクリプトの処理の流れや構成がおわかりにならないときは、ステートメントを1行1行確認して考える必要があります。しかし、使用されている演算子やプロパティ・メソッドが理解できない場合には、考えてわかるものではありません。オンラインヘルプ(「ActionScript辞書」)を調べるべきです。
引用:
ERi_yyyさんは書きました:
私、確かに「mode=!mode」って何だろう…と思いながら書いてました。><

「ActionScript辞書」をまずお調べになったうえで、以下を試されるとよいでしょう。
引用:
書き直して頂いた分を、日本語訳(?)すると
this.onRelease = function() {
    //これ(ムービークリップ内)でクリックした時
    trace(rollover);
    trace(! rollover);
    rollover = ! rollover;
    trace(rollover);
    //?
    if(rollover){
        //もしロールオーバーしていたら
        trace("rollover");

...[中略]...
やはり、2行目が分からないです…。

上記に追加したtrace()ステートメントが出力されなければ、MovieClip.onReleaseイベントハンドラメソッド自体が動作していません。
引用:
試しに、直して頂いたソースに直してテストしてみましたが、だめでした。ロールオーバー&アウトのアニメーションは上手く動くのですが、クリックしても何も起きません。クリックの命令が何かとぶつかっているような気がします。(以下)


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

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

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