可以這樣做嗎?事件監聽器可以從另一個函數內部調用函數嗎?
stage.addEventListener(TouchEvent.TOUCH_END, finish);
private function new(e:TouchEvent):void {
function finish(e:TouchEvent):void {
}
}
由於
可以這樣做嗎?事件監聽器可以從另一個函數內部調用函數嗎?
stage.addEventListener(TouchEvent.TOUCH_END, finish);
private function new(e:TouchEvent):void {
function finish(e:TouchEvent):void {
}
}
由於
首先,strille是正確的,你的finish()函數應該駐留在new()函數之外。您要傳輸的變量可以存儲在對象的屬性中,然後在finish()函數中引用它們。另外,我不敢將你的函數命名爲「new」,因爲它在Actionscript 3中已經有了意義。
private function newTouch(e:TouchEvent):void {
touchedAtX=e.localX;
touchedAtY=e.localY;
// store more if you want to
}
private function finish(e:TouchEvent):void {
// here you can use your touchedAtX and touchedAtY stored values,
// as well as anything else
}
否,內部光潔度()函數是不可用/可見外新()函數的外部。問題是爲什麼finish()需要在new()中定義,並且不能駐留在它之外?
private function new(e:TouchEvent):void {
finish(e);
}
private function finish(e:TouchEvent):void {
}
新的運行在觸摸下,完成時觸摸運行,但我有新的變量希望我們在完成 – Lee
新只是一個例子,但我認爲這會讓我圍繞我的問題,謝謝 – Lee
好吧,這仍然是newTouch的工作是事件和完成是TouchEvent? – Lee
基本原理起作用,但普通的Event類沒有像「localX」「localY」這樣的屬性。但MouseEvent確實有這些。檢查您實際正在收聽的內容,並查看手冊中的可用事件屬性。 – Vesper