2009年12月24日 星期四

[AS2] 按鈕複製產生影片實體_可拖曳_碰撞偵測

[AS2] 按鈕複製產生影片實體_可拖曳_碰撞偵測
這個問題來自於知識+
http://tw.knowledge.yahoo.com/question/question?qid=1009111009903
程式機制在於,按下按鈕可以複製元件庫中的特定元件到舞台上,並以亂數產生X,Y座標,作為其位置.
所複製出來的實體,可以被拖曳到舞台上的垃圾桶實體,做碰撞偵測.
碰撞到了會產生音效,被拖曳實體會隱藏不見.

SWF預覽......


1. 主場景上佈署--> 複製按鈕duplicate_btn, 和垃圾桶trashCan實體

2.元件庫擺兩段音效WAV-->POP.WAV和ARCHER1.WAV ; 及被複製的實體star, 都設好連結識別名稱
3.第一影格AS2
//
var i:Number = 0;
var tmpX:Number;
var tmpY:Number;
//
this.attachMovie("star", "star", getNextHighestDepth(), {_x:-30, _y:-30});
//
duplicate_btn.onRelease = function() {
 i++;
 //
 tmpX = Math.floor(Math.random()*(Stage.width+1));
 tmpY = Math.floor(Math.random()*(Stage.height+1));
 //
 var myStar:MovieClip = new MovieClip();
 //
 myStar=star.duplicateMovieClip("star"+i, getNextHighestDepth(), {_x:tmpX, _y:tmpY});
 trace(i+"  "+tmpX+"  "+tmpY+"  "+_root["star"+i]+"   "+myStar);
 var mySound:Sound=new Sound();
 mySound.attachSound("POP.WAV");
 mySound.start();
 //
 myStar.onPress=function(){
  this.startDrag();
 }
 myStar.onRelease=function(){
  this.stopDrag();
  if(trashCan.hitTest(this)){
   var mySound:Sound=new Sound();
   mySound.attachSound("ARCHER1.WAV");
   mySound.start();
   this._visible=false;
  }
 }
};

沒有留言: