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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     getURLの処理完了を取得したい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Ishuka
Åê¹ÆNo.6138
投稿日時: 2004-4-9 13:59
新米
居住地:
投稿: 14
使用環境:
WinXP/2000
MX2004Pro
getURLの処理完了を取得したい
こんにちは、Ishukaです。

getURLを使い、JavaScriptを呼び出す処理で
これをforループで複数回実行しようとすると
一度呼び出されたgetURLの処理が終わる前に
次のgetURLが呼び出されているようで、
しかも前に実行したgetURLが処理されず
一番最後に呼ばれるgetURLしか実行されません。

例)
for ( i = 0 ; i < 5 ; i ++ ) {
  getURL("java script:functionA('" + i + "');");
}
(プレビューで見た所javaとscriptの間にスペースが入っている
ようですが実際は入っていません。なぜでしょうか・・・

どうにかして一度呼ばれたgetURLの処理が完了してから
次のgetURLを実行する、ということをしたいのですが
getURLの処理が完了したというフラグなどを取得することは可能でしょうか?

やりたいのは同じJavaScriptを連続で呼び出すことなので
もしgetURL以外でこのような動作を実現できるのであれば
別の方法でもかまいません。

わかる方いらっしゃいましたらご教授お願い致します。

野中文雄
Åê¹ÆNo.6140
投稿日時: 2004-4-9 14:34
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: getURLの処理完了を取得したい
getURL()の「処理」というのは、関数を「呼出す」ことですよね。それは、順番にひとつずつ処理が完了していると思います。以下のJavaScriptの関数は、呼出された数だけダイアログと引数値を表示します。
<script language="JavaScript" type="text/JavaScript">
<!--
function functionA(_str) {
	alert(_str);
}
//-->
</script>

引用:
Ishukaさんは書きました:
getURLを使い、JavaScriptを呼び出す処理で
これをforループで複数回実行しようとすると
一度呼び出されたgetURLの処理が終わる前に
次のgetURLが呼び出されているようで、
しかも前に実行したgetURLが処理されず
一番最後に呼ばれるgetURLしか実行されません。

例)
for ( i = 0 ; i < 5 ; i ++ ) {
  getURL("java script:functionA('" + i + "');");
}

「処理」が完了せず、しかも複数の同時呼出しで問題が発生しているのは、JavaScriptの関数側ではないのですか? もしそうだとすれば、JavaScriptの側で対処するしかないと思われます。


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

Ishuka
Åê¹ÆNo.6190
投稿日時: 2004-4-12 10:08
新米
居住地:
投稿: 14
使用環境:
WinXP/2000
MX2004Pro
Re: getURLの処理完了を取得したい
>野中様

返信が遅くなってしまって申し訳ありません。

それと、こちらの説明が不足していたことも併せてお詫びいたします。

getURLで呼び出すJavaScriptというのは、swfが埋め込まれているhtml内に書かれているものを考えています。

***test.html***
<script>
function test(num) {
  alert(num);
}

***test.fla***
(ボタンを一つ作り、その中にコードを書くとします)
on(click) {
  for ( i = 0 ; i < 5 ; i ++ ) {
    getURL("java script:test('" + i + "');");
  }
}

以上のコードでhtml上からswfのボタンを押すと、
alertで表示されるのは「4」のみになります。
これを0?4までが表示されるように順に実行したいのですが
なにか良い方法はありませんでしょうか?
野中文雄
Åê¹ÆNo.6192
投稿日時: 2004-4-12 11:35
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: getURLの処理完了を取得したい
Internet Explorer 6.0/Windows XP (SP1)で、動作が確認できました。

以下のJavaScriptを追加して、FlashのSWFから関数forTest()を呼出しても、同じ動作になります。つまり、JScriptの仕様だと思われます。したがって、結局「JavaScriptの側で対処するしかない」という結論には変わりはないでしょう。
引用:
Ishukaさんは書きました:
***test.html***
<script>
function forTest(){  // 追加
	for (i=0; i<5; i++) {
		test(i.toString());
	}
}
function test(num) {
  alert(num);
}


***test.fla***
(ボタンを一つ作り、その中にコードを書くとします)
on(click) {
  for ( i = 0 ; i < 5 ; i ++ ) {
    getURL("java script:test('" + i + "');");
  }
}


以上のコードでhtml上からswfのボタンを押すと、
alertで表示されるのは「4」のみになります。
これを0?4までが表示されるように順に実行したいのですが
なにか良い方法はありませんでしょうか?


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

Ishuka
Åê¹ÆNo.6211
投稿日時: 2004-4-13 4:38
新米
居住地:
投稿: 14
使用環境:
WinXP/2000
MX2004Pro
Re: getURLの処理完了を取得したい
やはりJavaScript側で対処するしかないですか・・・

一応、JavaScript側で対処できる事はわかっていたのですが
なんとかFlash側で制御できないものかと思い質問させていただきました。

今後もお世話になると思いますのでご指導宜しくお願い致します。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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