私はマルチターゲットアプリケーションを開発しています。シナリオは、マウスやタッチイベントを取得するためにいくつかの条件付きコンパイルを使用する必要があるということです。マウスイベントを延長
だから私はこのような何かをしています:
拡張:
package {
import flash.events.MouseEvent;
import flash.display.InteractiveObject;
public class fackeClick extends MouseEvent {
public static const CLICKS:String = "click";
public function fackeClick(type:String, bubbles:Boolean = true, cancelable:Boolean = false, localX:Number=0, localY:Number=0, relatedObject:InteractiveObject = null, ctrlKey:Boolean = false, altKey:Boolean = false, shiftKey:Boolean = false, buttonDown:Boolean = false, delta:int = 0)
{
super(eventType, bubbles, cancelable, localX, localY, relatedObject, ctrlKey, altKey, shiftKey, buttonDown, delta);
}
}
}
そして、このように使用する:
はTypeError:この使用法は私にランタイムエラーがスローされます
package {
import flash.display.MovieClip;
import fackeClick;
public class Main extends MovieClip {
public function Main() {
stage.addEventListener(fackeClick.CLICKS, tryClick);
}
//
private function tryClick(e:fackeClick):void {
trace(e);
}
}
}
を:エラー#1034:強制型変換が失敗しました:flash.events:[email protected]を変換できません。 eClick。
プライベート関数tryClick(e:fackeClick)をプライベート関数tryClick(e:MouseEvent)に切り替えると、それが動作します。しかし、実際にカスタムイベントを関数に渡す必要があります。
「fackeClickは、」クラスは、マウスやTouchEvents
を拡張し、異なるパッケージに書き込まれます、私たちはtoucheventsなどとしてclickeventsを使用することができることを知ってください 私は非常に奇妙なシナリオでは午前本当にしなければなりませんこのような。
どのような考えですか?
説明をいただきありがとうございます。私はすでに成功していないいくつかの方法を試しました。私は、あなたが言ったようにそれは全く不可能であると推測していました。 しかし、それは本当に面倒です。なぜイベントが変換されないのですか? 私はちょうど同じ名前を使用したい、dammit! :) とにかく、ありがとうございました。 –
申し訳ありませんが、初めてここに投稿します! :0 可! –