ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   ActionScript 3.0
     連続稼動でsetTimeout関数が途中で止まってしまう
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
dsh
投稿日時: 2011-3-2 10:26
ご主人様
登録日: 2006-3-29
居住地: 東京
投稿: 296
Re: 連続稼動でsetTimeout関数が途中で止まってしまう
こんにちは、

実はsetTimeoutの使用はあまり推奨されていません。
リファレンスには、このメソッドの替りにTimerクラスを使ってください、と記述されています。
http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/utils/package.html#setTimeout%28%29

なぜかというと、setTimeout(setIntervalも)は引数にクロージャーを取ることから、リソースを消費してしまう為です。

(余談ですが、このメソッドはActionScript 1 / Flash Player 6時代からあるものなので、下位互換性を保つためにも残してあるのだと思います)

問題がsetTimeoutのせいかどうかは投稿の内容からは判断できませんが、少なくとも推奨されていないsetTimeoutを使うのをやめて、Timerクラスを使用する方式で書き換えてみてはいかがでしょうか。

#フリーズしてしまうということから、メモリリソースを消費し尽くしてしまっている可能性は考えられます


----------------
http://shield.jp/blog/
Twitter: @dseg

masu567
投稿日時: 2011-3-1 15:40
やや お馴染みさん
登録日: 2011-3-1
居住地: 関東
投稿: 6
連続稼動でsetTimeout関数が途中で止まってしまう
お世話になっております。
初めてこのような場所に投稿するため、
失礼な点がありましたら、ご指摘宜しくお願い致します。

題名の件で質問させてください。

現在、問題現象がでているロジックは次の通りで
 _萍未僚藉処理から要求の発行
 ↓,量瓩蝓Command.asのresult処理内で
   setTimeout関数を実行
 5秒後に,汎韻戸弋瓩鮑禿挌行
という処理を行っていて 銑を処理した後は◆Νの処理の
繰り替えし実行となっています。

ソースを抜粋すると下記のようになります。
「XXXCommand.as」
public function result(data:Object):void {

・ //取得データmodelへ退避

setTimeout( shori, 5000);
}

public function shori():void {
var delegate :XXXBusiness = new XXXBusiness( this );
delegate.polling();
}

※1 XXXは任意の英字です
※2 pollingメソッドはBusinessに作成してあります

上記のロジックの場合、
長期稼動しているとの処理が実行されず
要求を再度発行しない現象が発生しています。
またその際、画面もフリーズをしてしまいボタン等を押下
出来ない状況になってしまいます。

長期稼動の期間は一定ではなく
1日弱で発生する場合もあれば、3日間発生しない場合も
あります。ActionScriptというよりFlashの問題でしょうか・・・?

全く検討がつかないため、
回避策または問題解決の参考となるような情報が
少しでもあれば、ご教授頂きたく思います。
宜しくお願い致します。

【環境】
OS:WindwosXp(SP3)
IE:7.0.5730.13
FlashPlayer:9.0.124
Flex:3.0
FlexSDK:3.3

長文となってしまい申し訳ありません。
« 1 (2)
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を