• ベストアンサー

フレーム上からonClipEvent(load){をしていするには

onClipEvent(load){ this._x = 0; this._y = 0; } というASをフレーム上から書くときはどの様に書けば良いのでしょうか? _root.MC.onEnterFrame = function(){ の様なかたちでやってみたのですがダメだったのですが、上記の様な事がしたい場合どの様にすれば良いのでしょうか。 ご教授ください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

そのムービークリップが _root(メインムービーのタイムライン)のステージ上に存在していたものとします。 まず, そのインスタンス名を付けます。 例えば 「myMC」 。 そして, その 「myMC」 が登場する_root の キーフレーム に, _root.myMC._x = 0; _root.myMC._y = 0; と書けばできると思います。 その 「myMC」 が登場する_root に キーフレーム が存在していなければ, キーフレームを作成してください。 ムービークリップにインスタンス名を付ける方法は, そのステージ上のムービークリップを選択して, 下のプロパティインスペクタ(プロパティパネル)の右の方にある,  歯車 [ムービークリップ   v]      [ <インスタンス名>  ] となっている, <インスタンス名> の部分に myMC などと記入してください。

thank001
質問者

お礼

書き込みありがとうございます。 なるほど。そういう事なのですね!。 丁寧なご解説ありがとうございます。 とても助かりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 慣性の効果がついたマウス追従

    マウス追従の効果で教えてください。 http://www.flashiroha.com/script/as8.htmlの慣性効果付加型のスクリプトは AS2.0で書かれています。 onClipEvent(load) { vx=0; vy=0 } onClipEvent(enterFrame) { vx=vx*0.65+(_root._xmouse-this._x)/a; vy=vy*0.65+(_root._ymouse-this._y)/a; this._x+=vx; this._y+=vy; } これをAS3.0で作成していますが、マウスに追従するどころか大きくステージから離れてしまいます。 どのように記述をしたらいいでしょうか。 my_mc.addEventListener(Event.ENTER_FRAME,onEnterframe); var vx ; var vy ; function onEnterframe(eventObj:Event):void{ vx= my_mc.x*0.65+(stage.mouseX-my_mc.x)/2; vy= my_mc.y*0.65+(stage.mouseY-my_mc.y)/2; my_mc.x+=vx; my_mc.y+=vy; trace(my_mc.x); }

    • ベストアンサー
    • Flash
  • スライドバーのアクションスクリプト

    いつも大変お世話になっております。 伸び縮むサイドバーを作っているのですが、伸ばしたまではいいのですが、元の位置に戻すほうがどうもうまくいきません。 以下、途中まで書いたスクリプトです。 ■.recruit_mcがバーの部分になります。 onClipEvent (load) { _root.recruit_mc._x = 859; _root.recruit_mc._y = 272; } onClipEvent (enterFrame) { rec_to_button.onRelease = function() { _root.recruit_mc.onEnterFrame = function() { if (_root.recruit_mc._x>=620) { _root.recruit_mc._x -= 10; } }; }; } -------------------------------------------------------------- if (_root.recruit_mc._x>=620) { _root.recruit_mc._x -= 10; } の箇所で else を使って、逆の場合をいろいろと書いているのですが どうもうまくいきません。 ボタンを押したら859→620まで移動、またボタンを押したら620→859 まで移動するようにするには、あとどう書き加えればいいですか? ご教授よろしくお願いします。

    • ベストアンサー
    • Flash
  • mcのx座標が50以上になったら次フレーム

    タイトルどおり、 mcのx座標が50以上になったら次フレーム という処理をしたく、 mcに次のアクションスクリプトを記述しました。 onClipEvent(enterFrame){ this._x += 10; } onClipEvent(load){ if(this._x >= 50){ nextFrame(); } } しかし何故か次のフレームに行ってくれません。 どこか間違っているのでしょうか。。。 nextFrame();をgotoAndPlay(2);にしても駄目でした。

    • ベストアンサー
    • Flash
  • 再生スライダーと連続再生について。

    再生スライダーと連続再生について。 今、複数の外部swfをA.swfの置いたmcによんで 連続再生ができるものを作成しています。(01.swf<-02.swf) 再生スライダーも作ろうと、A.swfにseek_mcとbar_mcを使って設置しました。 つまみのseek_mcをドラッグしたり、動画と一緒に動いたりなどは出来たのですが、 終点までドラッグすると01.swfのはじめに戻ってしまします。 何もしなければ次のファイルをちゃんと再生してくれます。 いろいろ、入力して試してはいるのですが、まったく上手くいきません。 何かいい方法はないでしょうか?? よろしくお願いいたします。 flash8を使っています。 以下は、スライダーの置いてあるフレームに記入したASです。 また、01.swf02.swfに変更はできないので、 A.swfのフレームASを記入してgotoAnd...とenterframe にて連続再生ができるようにしてあります。 var left = this.bar_mc._x+this.seek_mc._width/2; var top = this.bar_mc._y; var right = left+this.bar_mc._width-this.seek_mc._width; var bottom = this.bar_mc._y; this.seek_mc._x = this.bar_mc._x; this.seek_mc._y = this.bar_mc._y; this.seek_mc.onPress = function() { _root.stop(); delete _root.onEnterFrame; this.startDrag(false, _root.left, _root.top, _root.right, _root.bottom); this.onMouseMove = MoveFrame; }; this.seek_mc.onRelease = function() { this.stopDrag();  var p = (this._x-_root.bar_mc._x)/(_root.bar_mc._width-this._width); _root.gamen_mc.gotoAndPlay(Math.floor(_root.gamen_mc._totalframes*p)); _root.onEnterFrame = _root.MoveSeek; delete this.onMouseMove; }; function MoveFrame() { var p = (this._x-_root.bar_mc._x)/(this.bar_mc._width-this._width); _root.gamen_mc.gotoAndStop(Math.floor(_root.gamen_mc._totalframes*p)); } function MoveSeek() { var p = _root.gamen_mc._currentframe/_root.gamen_mc._totalframes; this.seek_mc._x = _root.left+(this.bar_mc._width-this.seek_mc._width)*p; } _root.onEnterFrame = MoveSeek;

    • ベストアンサー
    • Flash
  • AS2をAS3にしたい

    AS2で書かれたスクリプトの一部があります。下記をAS3にしたいのですが。 ちなみに、mcはインスタンス名です。  onClipEvent (load) {      pointX = 10;     pointY = 20;  }  onClipEvent (mouseMove) {       _root.mc._x = _root._xmouse + pointX;       _root.mc._y = _root._ymouse + pointY;     }

    • ベストアンサー
    • Flash
  • Now Loadingから次のフレームに行かない

    Flash8です。 1フレームに全体のサイズを読み込むスクリプト ------------------------- this.onEnterFrame = function() { nParcent = (_root.getBytesLoaded()/_root.getBytesTotal())*100; if (nParcent == 100) { _root.play(); delete this.onEnterFrame; } }; _root.stop(); ------------------------- と、%を数字で表記するためのスクリプト ------------------------- onClipEvent (enterFrame) { num = Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100); _root.nowloading.percent = num+"%"; } ------------------------- を入れていて、100%読み込んだら次のフレームより開始(再生)したいのですけど、 現状読み込んで(数字も0から100に上がって行って)、100%になった状態でストップして再生しません。 何が足りないのでしょうか? アドバイスお願いします!

  • flash as2.0 hitTest()について

    FLASHMXで作業をしています。 mcが壁に当たると反対方向にmcを移動させたいのですが 以下では、うまくいきません。理由がわかりませんし打開策も わかりません。解決策を教えてください。よろしくお願いいたします。 onClipEvent(load){ this._x=100; this._y=380; } onClipEvent(enterFrame){ this._y -=3; if(_root.tama_mc.hitTest(_root.kabe_mc)==true){ this._y +=5; } }

  • onEnterFrameの中止

    お世話になります。 1フレームには下記のようにマウスに追従させています。 function moveCross() { this._x = _root._xmouse; this._y = _root._ymouse; } closs.onEnterFrame = moveCross; 1フレームのメニューから2フレームに進んだ時に、この追従をさせないようにしたいのですが できません。delete onEnterFrameを使えばいいとわかったのですが。 すみませんが、教えてください。

    • ベストアンサー
    • Flash
  • 吸着後の事

    吸着後についてわからない事があります。 ドラッグ&ドロップでmaru_mcをsikakuというMCに吸着させています。 sikakuというMCに衝突していない時は指定座標に戻るようにしているのですが、二点うまくいかないところがあります。 吸着後、maru_mcをsikakuから離す時、maruがその場を動こうとしない時があり、すんなりドラッグできない。 maru_mcが、衝突していない時でも指定座標にもどらず、sikakuに吸着してしまう時があります。 改善点等たくさんあるとおもいますが、よろしくお願いします。 下記スクリプトです。 maru_mcのスクリプト on (press) { this.startDrag(); this.onEnterFrame = function() { if (this.hitTest(_root.sikaku)) { this._x += (_root.sikaku._x-this._x)/4; this._y += (_root.sikaku._y-this._y)/4; } }; } on (release, releaseOutside) { this.stopDrag(); this.onEnterFrame = function() { if (!this.hitTest(_root.sikaku)) { this._x += (400-this._x)/6; this._y += (300-this._y)/4; } else { this._x += (_root.sikaku._x-this._x)/4; this._y += (_root.sikaku._y-this._y)/4; } }; }

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

    最近Flashでfunctionの使い方を勉強しています。 そこで思ったのですが、例えばあるキーが押されたときに動作を行なわせたい場合。ムービークリップにonClipEvent(enterFrame)で記述する方法とフレームにfunctionで記述する方法の2通りあります(もしかして他にも方法あったりします?)。 素人考えでは、例えばonClipEvent(enterFrame)にtrace文を書いた場合、ずっとtrace処理が行なわれますが、フレームに書いた場合はそのフレームが読み込まれた瞬間のみtrace処理が行なわれます。一見onClipEvent(load)のようですが読み込み後、たとえフレーム移動がそこでstopになったとしても、イベントハンドラによって処理を行なわせることは可能です。そう考えると、処理の軽さ的にはフレームに記述する方法の方が優れているのでしょうか? ムービークリップにonClipEvent(enterFrame)で記述する場合とフレームにfunctionで記述する場合、両者の長所・短所も合わせて紹介していただけると助かります。 以上になります。よろしくお願いします。