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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     ifでの条件分岐
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
pizza
Åê¹ÆNo.43292
投稿日時: 2009-8-31 7:40
新米
居住地:
投稿: 24
使用環境:
MAC バージョン10.5.8

FLASH CS3

AS3.0

Firefox 3.5.2
Safari 4.0.3
ifでの条件分岐
いつもお世話になっております。

スライドショーを作っていて壁にぶち当たってしまったので質問させていただきました。

ステージ上にslideshow_btnを配置してある状態で、
slideshow_btnをクリックするたびにスライドショーのon/offを切り替えるという風にしたいと思っております。



以下scriptになります。


//関係の無い部分は省略させていただきます。


function slideshowClickHandler(event:MouseEvent):void{
var slideshowTimer:Timer=new Timer(5000);

//ここが問題の部分です。
if(){

slideshowTimer.addEventListener(TimerEvent.TIMER,slideshowTimerHandler);
slideshowTimer.start();

}else{

slideshowTimer.removeEventListener(TimerEvent.TIMER,slideshowTimerHandler);
}
}


◯このときのif文での条件分岐if()の () の中をどう記載してよいのか

◯その他、こういった場合の際の条件分岐のscriptが合っているのか


ご教授よろしくお願いします。


また、こういった際の物を作るときにより分かりやすい作り方などございましたらご教授していただけたら幸いです。


どうぞよろしくお願いいたします

ひろゆき
Åê¹ÆNo.43293
投稿日時: 2009-8-31 9:51
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ifでの条件分岐
例えば、
var playing:Boolean = false;
function slideshowClickHandler(event:MouseEvent):void{
	var slideshowTimer:Timer = new Timer(5000);
	if (!playing) {
		playing = true;
		slideshowTimer.addEventListener(TimerEvent.TIMER,slideshowTimerHandler, false, 0, true);
		slideshowTimer.start();
	} else {
		playing = false;
		slideshowTimer.removeEventListener(TimerEvent.TIMER,slideshowTimerHandler);
	}
}
とか、
var playing:Boolean = false;
function slideshowClickHandler(event:MouseEvent):void{
	playing = !playing;
	var slideshowTimer:Timer = new Timer(5000);
	if (playing) {
		slideshowTimer.addEventListener(TimerEvent.TIMER,slideshowTimerHandler, false, 0, true);
		slideshowTimer.start();
	} else {
		slideshowTimer.removeEventListener(TimerEvent.TIMER,slideshowTimerHandler);
	}
}
とか。


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

pizza
Åê¹ÆNo.43296
投稿日時: 2009-8-31 17:30
新米
居住地:
投稿: 24
使用環境:
MAC バージョン10.5.8

FLASH CS3

AS3.0

Firefox 3.5.2
Safari 4.0.3
Re: ifでの条件分岐
ひろゆき様

いつも本当にありがとうございます


こういった方法があったのですね!ありがとうございます

ひろゆき様の教えていただいたとおり以下のscriptでif文の条件分岐はできたと思うのですが、

var playing:Boolean = false;
function slideshowClickHandler(event:MouseEvent):void{
playing = !playing;
var slideshowTimer:Timer = new Timer(5000);
if (playing) {
slideshowTimer.addEventListener(TimerEvent.TIMER,slideshowTimerHandler, false, 0, true);
slideshowTimer.start();
} else {
slideshowTimer.removeEventListener(TimerEvent.TIMER,slideshowTimerHandler);
}
}

なぜかスライドショーが止まってくれません、、

}else{

より下の部分の書き方がいけないのでしょうか?



ご教授よろしくお願いします。
ひろゆき
Åê¹ÆNo.43297
投稿日時: 2009-8-31 17:34
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ifでの条件分岐
引用:
pizzaさんは書きました:

なぜかスライドショーが止まってくれません、、

}else{

より下の部分の書き方がいけないのでしょうか?

slideshowTimerHandlerがどういった関数が明らかにされていない以上、
何がいけないのか、分かりようがありません。


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

pizza
Åê¹ÆNo.43298
投稿日時: 2009-8-31 17:44
新米
居住地:
投稿: 24
使用環境:
MAC バージョン10.5.8

FLASH CS3

AS3.0

Firefox 3.5.2
Safari 4.0.3
Re: ifでの条件分岐
申し訳ございません


変数clickNumは画像の番号になっております。
変数totalNumは画像のトータル枚数です。
関数xml()で表示画像の更新をしております。

画像は関数xml()で外部からよみこんでおります


//slideshowTimerHandlerです。

function slideshowTimerHandler(event:TimerEvent):void{
clickNum ++;
if(clickNum > totalNum-1){
clickNum=0;
}
xml();
}

//以上です


よろしくお願いします

ひろゆき
Åê¹ÆNo.43299
投稿日時: 2009-8-31 19:38
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ifでの条件分岐
引用:
pizzaさんは書きました:

画像は関数xml()で外部からよみこんでおります

少なくとも、xmlを毎回実行する必要があるようには思えませんし、
読み込んだxmlをどのように使われているのか不明です。

動きが止まらないとしたら、どの動きが止まっていないのか、
traceなどして、ご自分で確認するほかないと思います。

第三者に検証させようというのであれば、
中途半端なスクリプト、つまり、断片的な情報だけでは、
分からないこともあると思いますが。


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

pizza
Åê¹ÆNo.43305
投稿日時: 2009-9-1 3:38
新米
居住地:
投稿: 24
使用環境:
MAC バージョン10.5.8

FLASH CS3

AS3.0

Firefox 3.5.2
Safari 4.0.3
Re: ifでの条件分岐
たびたび申し訳ございません


中途半端な説明になってしまってすいませんでした。
xml()は更新時に毎回実行させるようになっているので今回のscriptでは必要になります。
説明なくもうしわけございません。


今回はなんとか自己解決することができました。


新たにslideshowTimerStopHandlerを作ってscriptを加えてみたら望んでいたようにできました


//以下scriptです

var playing:Boolean = false;
function slideshowClickHandler(event:MouseEvent):void{
playing = !playing;
var slideshowTimer:Timer = new Timer(5000);
if (playing) {     
//追加script
slideshowTimer.removeEventListener(TimerEvent.TIMER,slideshowTimerStopHandler);

slideshowTimer.addEventListener(TimerEvent.TIMER,slideshowTimerHandler, false, 0, true);
slideshowTimer.start();
} else {    
//追加script
slideshowTimer.addEventListener(TimerEvent.TIMER,slideshowTimerStopHandler);

}
}


//新たに追加したslideshowTimerStopHandler
function slideshowTimerStopHandler(event:TimerEvent):void{
    slideshowTimer.removeEventListener(TimerEvent.TIMER,slideshowTimerHandler);
}





今回も大変ありがとうございました。
ひろゆき様にはいつも大変感謝しております。


また何かありましたらご教授よろしくお願いします






TJFORD
Åê¹ÆNo.43307
投稿日時: 2009-9-1 10:40
半人前
居住地: Tokyo
投稿: 42
使用環境:
:Flash CS3
Re: ifでの条件分岐
var playing:Boolean = false;
function slideshowClickHandler(event:MouseEvent):void{
playing = !playing;
var slideshowTimer:Timer = new Timer(5000);
if (playing) {
slideshowTimer.addEventListener(TimerEvent.TIMER,slideshowTimerHandler, false, 0, true);
slideshowTimer.start();
} else {
slideshowTimer.removeEventListener(TimerEvent.TIMER,slideshowTimerHandler);
}
}

-------------------------------------------------------------
上記のスクリプトですが、slideshowClickHandler内でクリックする度にTimerオブジェクトを生成しているようですが、そこがそもそもの問題だったりしませんでしょうか?
pizza
Åê¹ÆNo.43311
投稿日時: 2009-9-1 17:46
新米
居住地:
投稿: 24
使用環境:
MAC バージョン10.5.8

FLASH CS3

AS3.0

Firefox 3.5.2
Safari 4.0.3
Re: ifでの条件分岐
TJFORD様

返信ありがとうございます。

おっしゃられた通り、slideshowTimerを外に置いたら下記のscriptで理想の動きをする事ができました


//以下script


var slideshowTimer:Timer = new Timer(5000);
var playing:Boolean = false;
function slideshowClickHandler(event:MouseEvent):void{
playing = !playing;

if (playing) {
slideshowTimer.addEventListener(TimerEvent.TIMER,slideshowTimerHandler, false, 0, true);
slideshowTimer.start();
} else {
slideshowTimer.removeEventListener(TimerEvent.TIMER,slideshowTimerHandler);
}
}

////



大変ありがとうございました。

また何かございましたらご教授よろしくおねがいします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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