• 締切済み

parafla 関数が呼ばれない

onClipEvent (load) { hoge (); } - onClipEvent (enterFrame) { hoge (); } function hoge () { trace ("hoge"); } この場合、 onClipEvent (load) 内から呼び出した独自関数が呼び出されません。 onClipEvent (enterFrame) 内では正しく呼び出されます。 どうしてですか?

  • Flash
  • 回答数4
  • ありがとう数7

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.4

大筋は #1~3 の方のおっしゃる通りですが, ParaFla! の場合に限っては次のような感じにしないとならないようです。 「質問ページ-126 - ParaFla! Wiki」 http://www.wikihouse.com/ParaFla/index.php?%BC%C1%CC%E4%A5%DA%A1%BC%A5%B8%2F126 onClipEvent() ハンドラ内では function ○○(){} は使えません this.○○=function(){} 形式でなければならないようです。

uniuniuni1
質問者

お礼

参考になりました。 ありがとうございます。

  • joy_28
  • ベストアンサー率84% (45/53)
回答No.3

たびたび、失礼。 クリップアクションは、久しく使ったことがないので、記載ミスがありました。 onClipEvent (load) { function hoge() { trace("hoge"); } hoge(); } です。

uniuniuni1
質問者

お礼

これでは動きませんでしたが、 解決の参考になりました。 ありがとうございます。

  • joy_28
  • ベストアンサー率84% (45/53)
回答No.2

失礼。 Flashでの話でした。paraflaが、Flashの文法を正当に踏襲してるなら、同じことかと思いますが、paraflaを使ったことがないので、私には、分かりません。失礼しました。

  • joy_28
  • ベストアンサー率84% (45/53)
回答No.1

uniuniuni1さん、 uniuniuni1さんの書き方は、通称クリップアクションとフレームアクションの記載方法を、混雑させてますので、動かないです。 正しく言うと、onClipEvent()イベントハンドラー内に、 function hoge(){ trace("hoge"); } が記載されてないからです。 → onClipEvent (load) { fnction hoge (){ trace("hoge"); } で、trace();されます。 }

関連するQ&A

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

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

  • ActionScript

    今日初めてActionScriptをやってみました 疑問に思うことがあり質問させていただきました ○画面の両端まで行くとぶつかって反対側に行くプログラムで onClipEvent(enterFrame){ trace(vX); trace(_x); if(_x > 550){  vX = -vX; } if(_x < 0){  vX = -vX; } _x += vX; } onClipEvent(load){ vX = 1; } if(_x < 0){vX = -vX;} 画面の左端にぶつかって右側に行くときは+ではなく-になるのはなんででしょうか? 右側に行くのでプラスだと思っていました。 プログラム勉強はじめたばかりでわかりません よろしくお願いします。

    • ベストアンサー
    • Flash
  • 動きを伴うフェードインフェードアウトするmcをボタンで制御したい

    4つ前の質問と類似するのですが、四角形のムービークリップを透明度0から100になりつつ移動させたいと思っています。 単純に制御だけするなら onClipEvent (load) { function move() { dx = 10; // x方向の移動量 dy = 0; // y方向の移動量 time = 0; // 時間カウント用 } } onClipEvent (enterFrame) { function move2(){ // 毎フレームごとに移動量を増やしていく dx *= 0.9; dy *= 0.9; // 毎フレームごとに移動量を座標に足しこむ _x += dx; _y += dy; } } で動作したのですが、ボタンを押した時にはじめてこの動きを出したいと思っています。 そこで onClipEvent (load) { function move() { dx = 10; dy = 0; _alpha = 0; time = 0; } } onClipEvent (enterFrame) { function move2(){ dx *= 0.9; dy *= 0.9; _alpha += 5; _x += dx; _y += dy; } } と書いて、ボタンには on(release){ this.player.move(); this.player.move2(); } と書いたところ、それぞれの動きが別になってしまいました。 また、他のボタンを押したときはこれと逆に消えていく動きのあとにこれと同じ動きで四角形が出て来てもらいたいのですがどのようにしたらよろしいでしょうか?どなたかおわかりになる方教えていただきたいです。宜しくお願いします。

    • ベストアンサー
    • Flash
  • 【jquery】即時関数について

    知識のある方に教えて頂きたく、貴重なスペースをお借りいたします。 $(function(){ })と、即時関数の(function(){})();は 何が異なるのでしょうか。 よくグローバルオブジェクトの汚染を防ぐ為に 即時関数を使用すると記載がありますが、 通常JSを記載する際に使用する、DOM構築後に実行をする記述 $(function(){ })も、結局変数などをVar宣言すれば、 ローカル変数になるので、同じこと(グローバルの汚染を防げる) ではないかと思うのですが、間違っておりますでしょうか。 それだとすると、即時関数の使い道がわからないのですが、 ご教示頂けますでしょうか。 また、以下の(1)の記述方法だと、 「hoge」はグローバルオブジェクトとなってしまいますが、 (2)だとなりませんよね。 であれば、基本的には(2)のように関数は記載した方が良いのでは ないのでしょうか。結構(1)の書き方をしている方がいるので。 どなたかご教示いただければ幸いです。 よろしくお願いいたします。 ----------------------- (1) $(function(){ hoge(); }) function hoge(){ return true; } ----------------------- ----------------------- (2) $(function(){ hoge(); function hoge(){  return true; } }) -----------------------

  • 自作関数の中でthisを使用することはできますか?

    jqueryで関数を組んだ際、関数内でthisを使用することはできないのでしょうか? できない場合は代替の方法などがあれば教えていただきたいです。 イメージとしては以下のような形ですが、これでは動作しませんでした。 $(function(){ $("#hoge").click(function(){ fugafuga(); }) function fugafuga() { $(this).text("HOGE FUGA"); } })

  • 自作関数からのセル操作

    お世話になります。 ExcelVBAで以下のような自作の関数を作成し、実行するとA1に”hoge”が入力されます。 <自作関数> function hoge() thisworkbook.worksheets("sheet1").range("A1").value = "hoge" end function しかし、ワークシート上のセル”A2”に「=hoge()」と入力してEnterとするとエラーになってA1には何も入力されません。 VBAで作った関数をワークシート上で関数として使う場合、任意のセルのプロパティを変更することはできないのでしょうか? よろしくお願いします。

  • PHPにおいての関数ポインタ(リファレンス)の実装の仕方

    こんにちわ, 今PHP4.3.4を使用してWebを作成しています。 C言語で言う関数ポインタを実装したいのですが,どうすればいいのでしょうか。 たとえば, function hoge(){ return 5; } function hoge2(){ return 4; } function hoge3(){ return 3; } と宣言して function main($a, $b)[ return ($a + $b); } としたときに, main(hoge(), hoge2()); をしたときに9 main(hoge()2, hoge3()); をしたときに7 とするようにmainの関数をつくりたいのですが,どうすればいいのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • mcの中のフレームラベルの移動

    初めまして。 当方初心者なので、よくわからないので、質問させていただきます。 外部にswfとしてフレームラベルの複数ついたものがあって、 それをmc(mcs_mc)で読み込みし、スクリプトで一定時間毎に mcに読み込んだ外部swfのフレームラベル(chapter1~chapter10)を移動させたいのですが、うまく動いてくれません。 どの用にしたらよいでしょう?よろしくお願いします。 onClipEvent(load){ this._lockroot = true; } onClipEvent(enterFrame){ setInterval( function(){ mcs_mc.gotoAndPlay("chapter2"); }, 1000); }

    • ベストアンサー
    • Flash
  • attachMovieしたmovieClipを動かすには?

    attachMovieで作ったmovieClipを動かすためには、どうすればよいのでしょうか? 下にあるスクリプトは変数var objに代入していますが、このobjを動かすための var obj=attachMovie("chugoku","ball1","0"); obj._x = 200; obj._y = 150; onClipEvent(load){ var div:Number = 0.3; var move_to:Number = 200; } onClipEvent(enterFrame){ move_to = 500; obj._x += (move_to-obj._x)*div; } loadとenterFrameはどのように記述すれば動かせるのでしょうか?

    • ベストアンサー
    • Flash
  • 実体化したクラスを関数の引数にするには

    タイトルの通りです。 実体化したクラスを関数の引数として渡し、 関数の中でクラスのメソッドを実行したいと思っています。 以下のソースではエラーが出るのですが、 お分かりの方はいらっしゃいますでしょうか? $o_hoge = new Class_hoge(); fncHoge = ($o_hoge); function fncHoge($class) {  $class->hoge('test'); } class Class_hoge {  public function hoge($a)  {   print $a;  } }

    • ベストアンサー
    • PHP

専門家に質問してみよう