2009-07-05T13:55:31
  • MSN ホーム
  • Hotmail
  • サインイン
  • 相談箱
  • デジタルライフ
  • ビューティースタイル
  • 転職・求人
MSN Japan 相談箱
  • 質問集
  • カテゴリ一覧
MSN相談箱IE8

PR

サインインすると質問や回答を投稿できます。

相談箱にサインイン 新規登録

この質問に関連するQ&A

このカテゴリーの新着Q&A

編集部ピックアップQ&A

夏のボーナス特集
夏のボーナス特集

恒例のボーナスシーズン!ボーナスの使い道や殖やし方など、ボーナスに関するQ&Aを集めました

ゴルフお悩み相談箱
ゴルフお悩み相談箱

コースでのナイスプレーには正しい知識と練習が必須!飛ばない、曲がる、ゴルフの悩みを解決

おすすめ特集

あみ先生の公開質問授業
あみ先生の公開質問授業

もうすぐ終了。スカパー!Netテレビに関する疑問質問を、公開授業で一発解決!

気になるキーワード

検索語キーワードランキング

1位:
むずむず脚症候群
up
2位:
東国原知事
keep
3位:
蛇にピアス
up
他のランキングを見る
注目キーワード
  • 七夕
  • 梅雨
  • 海開き
  • クールビズ
  • お中元
  • エコポイント

最新の話題

ちょっと! 何撮ってるの?
ちょっと! 何撮ってるの?
  • 与那国島に陸自配置へ 中国に対抗
  • 橋下マジック限界?首長連合の行方
  • アマゾン関連会社に140億円追徴
  • 水没の車に遺体 コードで手縛られ
  • 早食い小林さん、3個半及ばず2位
  • 大塚ちひろ、西川貴教との破局示唆
  • マイケルさんの医師5人以上を捜査

MSN 関連チャンネル

デジタルライフ  |  資格・学習  |  ビデオ  |  辞書  |  エンカルタ百科事典  |  転職・アルバイト  |  自動車

PR

MSN相談箱 > [技術者向] コンピューター > プログラミング > Flash

onClipEvent(enterFrame)よりもフレームに書いたほうが良い?

例: 湿気 対策

検索オプション 質問する

インタレストマッチ(詳細)
  • ≪最新≫人気FX会社ベスト10  -  日本最大級の申込実績!FX初心者でも稼げるFX会社で無料口座開設!
  • 格安販売!リサイクルトナー  -  高品質・低価格のリサイクルトナーを即お届け!1年保証&送料無料
  • FX初心者、迷ったらこの5社  -  FXで稼ぐには各社の強みを使い分けよう!無料口座開設で今すぐ体感!
  • FX人気総合ランキング2009  -  業界最大級のFX比較サイト!自分に最適なFX会社が必ず見つかる!
  • このQ&Aは役に立った
  • 役にたった:0件
  • このQ&Aをともだちに紹介する
  • このQ&Aをブックマークする
  • このQ&Aについてブログを書く

質問

質問者:taku17 onClipEvent(enterFrame)よりもフレームに書いたほうが良い?
困り度:
  • 暇なときにでも
最近Flashでfunctionの使い方を勉強しています。
そこで思ったのですが、例えばあるキーが押されたときに動作を行なわせたい場合。ムービークリップにonClipEvent(enterFrame)で記述する方法とフレームにfunctionで記述する方法の2通りあります(もしかして他にも方法あったりします?)。

素人考えでは、例えばonClipEvent(enterFrame)にtrace文を書いた場合、ずっとtrace処理が行なわれますが、フレームに書いた場合はそのフレームが読み込まれた瞬間のみtrace処理が行なわれます。一見onClipEvent(load)のようですが読み込み後、たとえフレーム移動がそこでstopになったとしても、イベントハンドラによって処理を行なわせることは可能です。そう考えると、処理の軽さ的にはフレームに記述する方法の方が優れているのでしょうか?

ムービークリップにonClipEvent(enterFrame)で記述する場合とフレームにfunctionで記述する場合、両者の長所・短所も合わせて紹介していただけると助かります。

以上になります。よろしくお願いします。
質問投稿日時:06/09/24 01:26
質問番号:2427415
この質問に対する回答は締め切られました。
最新から表示|回答順に表示

回答

 

回答者:noname#35109 >> 例えばあるキーが押されたときに動作を行なわせたい場合。
        〜
>> (もしかして他にも方法あったりします?)。

そういう単純なことでは,
onClipEvent(enterFrame) や MovieClip.onEnterFrame はなるべく避けた方が良いです。
enterFrame 系は,1フレーム進む時間ごとに毎回実行されます。
毎回毎回実行されるのですから,実行命令の無駄で,CPUに負担をかけます。
キーは普通めったに押されることはありません。
enterFrame 系は簡単で良いですが,
これを使いすぎるとだんだん動作が重くなります。
また enterFrame 系は,MovieClipクラス のイベントハンドラです。


あるキーが押されたときの,
"あるキー" として,特定のキーをすでに決めてある場合は,
ボタンシンボルのインスタンスを作成しておいて
そのボタンに,

 on (keyPress "a") { }

を書くか,また,
"あるキー" として,特定のキーをすでに決めていない場合,
つまり,本当に「あるキーが押されたとき」を監視するのでしたら,
Buttonクラスの,

 Button.onKeyDown = function() {}
  や
 Button.onKeyUp = function() {}

を使う方が良いです。

Flashドキュメンテーション
「onKeyUp (Button.onKeyUp ハンドラ)」
​http://livedocs.macromedia.com/flash/8_jp/main/00001999.html​


しかし,
キーイベントの監視に,わざわざボタンを作成するのも変な場合もあります。
そんなときは,Keyクラス の addListener メソッドで,

Listener.onKeyDown = function () {}

を使って,
リスナーオブジェクトに Keyイベント を監視させる方法を使います。

Flashドキュメンテーション
addListener (Key.addListener メソッド)
​http://livedocs.macromedia.com/flash/8_jp/main/00002295.html​

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

>> 例えばonClipEvent(enterFrame)にtrace文を書いた場合、
>> ずっとtrace処理が行なわれますが、
>> フレームに書いた場合はそのフレームが読み込まれた
>> 瞬間のみtrace処理が行なわれます。

はて???
どういう状況でしょう?
普通はそんなことはありませんよ。

_root.onEnterFrame = function(){
trace("traceしてます。");
}

ずっと trace し続けます。

>> そう考えると、処理の軽さ的にはフレームに
>> 記述する方法の方が優れているのでしょうか?

同じでしょう。
凝った MC(ムービークリップ) を作成したのでしたら,
その分メモリを消費するので,わざわざムービークリップを作らなくても良いかもしれない,

Movieclip.onEnterFrame = function(){}

の方が若干良いとは思いますが,
そのムービークリップが必要である場合は,どちらを使っても同じだと思います。

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

まあ,何にしても enterFrame 系 は,アニメーションと同期させて,毎時毎時同じ処理をする場合に使う物です。
種類:回答
どんな人:経験者
自信:参考意見
  • ログインして投票する
  • 参考になった:0件
回答日時:06/09/24 06:45
回答番号:No.2
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:suzuki-_- そもそもonClipEvent(enterFrame)とフレームに記述するfunctionを比べる、ということ自体が両者に関する間違った解釈をしていると思われます

下記のような例だとすると、

■targetMCに記述
onClipEvent(enterFrame){
//アクション
}

■targetMCの上階層フレームに記述
targetMC.onEnterFrame = function(){
//アクション
}

両者は同じ意味合いなので、前者は、後者のonEnterFrameイベントハンドラに使用するfunctionを定義することをonClipEvent(enterFrame)により実装しているという感じになります

フレームに記述した場合はそのフレームが読み込まれた瞬間にしかアクションを実行しないので、たとえstop();と記述してhoge();のような形でfunctionを呼び出したとしても、そのフレームで止まってる以上、何度もキー押下の判定をしたい場合取得ができません

そのフレームのみで押下判定を取得したいならそれで構いません

enterFrameは1つの記述で、フレームレートに合わせてアクションを常時実行させたい場合に使うものです
種類:回答
どんな人:一般人
自信:参考意見
  • ログインして投票する
  • 参考になった:0件
回答日時:06/09/24 05:19
回答番号:No.1
この回答へのお礼この回答にお礼をつける(質問者のみ)
  • このQ&Aをともだちに紹介する
  • このQ&Aをブックマークする
  • このQ&Aについてブログを書く
  • このQ&Aは役に立った
  • 役にたった:0件
最新から表示|回答順に表示

この質問に関連するQ&A


「ぜんぶ検索」で、画像や動画もまとめて検索してみよう!
インタレストマッチ(詳細)
  • ≪最新≫人気FX会社ベスト10  -  日本最大級の申込実績!FX初心者でも稼げるFX会社で無料口座開設!
  • 格安販売!リサイクルトナー  -  高品質・低価格のリサイクルトナーを即お届け!1年保証&送料無料
  • FX初心者、迷ったらこの5社  -  FXで稼ぐには各社の強みを使い分けよう!無料口座開設で今すぐ体感!

[PR] お役立ち情報

このページのトップへ
  • ライフ | 
  • デジタルライフ | 
  • 趣味 | 
  • エンターテインメント | 
  • 美容&健康 | 
  • ビジネス&キャリア | 
  • 社会 | 
  • マネー | 
  • 学問&教育
はじめての方へ|ヘルプ|FAQ

利用規約|プライバシーポリシー

Copyright © OKWave. All rights reserved.Powered by OKWave
  • プライバシー
  • 使用条件
  • 広告掲載
  • RSS
  • ヘルプ
  • お問い合わせ・ご意見
© 2009 Microsoft