• 締切済み

FLASH MX

こんにちわ。 FlashMXでジグソーパズルを作成しました。 目的の位置に来たら吸着するように 作成しました。 その後、 パズルがすべて完成した場合に ちょっとしたムービーを再生するように したいのです。 「パズルが完成した」のは どうやって判断すればよいのでしょうか? 初心者で、吸着にも非常に手間取ってしまうほどです。ご検討をお願いします。

みんなの回答

  • noias
  • ベストアンサー率82% (23/28)
回答No.3

>>一度おいたらもうドラッグできないようにしないといけないのでしょうか? ここからはスクリプトおよびオブジェクトの配置をご提示されないと、回答が難しいと思います。 ただ、出きるかどうかという問いに対しては, ドラッグしないようにも出来ますし、ドラッグ出来ないようにしなくても実現出来ると思います。

  • noias
  • ベストアンサー率82% (23/28)
回答No.2

完成時の実行アクション部分を trace("complete"); としてみてください。 うまく"complete"と出力されれば、アクション部分の記述に問題があります。

noname#11337
質問者

補足

ご回答ありがとうございます。 出力できました。アクション記述に問題が あるようです。 ただ、いちど、正しい位置にピースを置いた後に もう一度移動させるとそのたびカウントされるようでです。一度おいたらもうドラッグできないようにしないといけないのでしょうか?

  • noias
  • ベストアンサー率82% (23/28)
回答No.1

こんばんは たとえば10ピースのパズルだと仮定して、各ピースが正しい位置に配置されるごとに適当な変数に1を加算し、10になったらイベントを実行するというのはどうでしょう。 こんな感じで書かれているのでしょうか。 on(release,releaseOutside){  stopDrag();  if(正確な位置だったら){    吸着;    _root.finishflg++; //1を加算    if(_root.finishflg==10){ //10だったら     //お好きなアクション    }   } }

noname#11337
質問者

補足

on (press) { this.startDrag(); } on (release, releaseOutside) { this.stopDrag(); if (eval(this._droptarget) == _root.f1) { this._x = eval(this._droptarget)._x; this._y = eval(this._droptarget)._y; _root.finishflg++; if (_root.finishflg==23) { gotoAndPlay("シーン 1", 3); } } } さっそくのご回答ありがとうございました。 ピースにこのように記述してみましたが よろしいのでしょうか? なぜか完成しても、3フレーム目に ジャンプしません(泣) 私の書き方が間違っているのだと思います。 しくしく・・。 (上のアクション記述ですがアクションのスペースが うまく反映しませんでしたが実際はnoiasさまの構造通りになっています)

関連するQ&A