我將一個簡單的Flash「架子鼓」應用程序中使用來自http://www.tuio.org/?flashAS3:觸發人工的MouseEvent
作爲一個快速和骯髒的解決方案TUIO AS3參考實現支持TUIO多點觸摸,我試圖觸發一個人工的MouseEvent,但似乎沒有發生:(哪裏是我的錯誤是這甚至可能已經感謝
下面的代碼:?!
package {
import org.tuio.tuio.*;
import org.tuio.osc.*;
import flash.display.*;
import flash.ui.*;
import flash.events.*;
import flash.media.*;
public class drumsets2 extends MovieClip implements ITuioListener {
private var tuio:TuioClient;
var soundS01:Sound = new S01();
// more sounds...
public function drumsets2(){
this.tuio = new TuioClient(new LCConnector());
this.tuio.addListener(this);
drum1.hitS01.addEventListener(MouseEvent.MOUSE_DOWN, playS01);
// more event listeners for sounds...
}
// this is where the 'magic' is supposed to happen
public function addTuioCursor(tuioCursor:TuioCursor):void {
stage.dispatchEvent(
new MouseEvent(MouseEvent.MOUSE_DOWN, true, false, tuioCursor.x*stage.stageWidth, tuioCursor.y*stage.stageHeight)
);
}
function playS01(e:MouseEvent):void
{
var scS01:SoundChannel = soundS01.play();
}
// more play functions...
}
}
+1。雖然localX和localY的代碼沒有任何意義。我知道你剛剛從OP樣本中粘貼了這部分內容,但我認爲這值得注意。也許使用'drum1.hitS01.mouseX'和'drum1.hitS01.mouseY'更有意義;或者只是離開默認值,因爲實際上沒有點擊,所以x和y座標在這裏沒有任何實際含義。 – 2010-10-13 04:15:29
謝謝!但我試圖做的只是將觸摸事件轉發到整個舞臺,所以我不必檢查觸摸事件是否在hihat,basedrum等內部......是否有辦法完成這種行爲? – 2010-10-13 13:25:38
然後,如果要將事件轉發給舞臺,則需要舞臺上的事件偵聽器。另外,胡安好,我認爲它對他有一些意義,所以我只是把它留下。 – Aaron 2010-10-13 18:14:45