ActionScript MouseEvent.clone()されます
-
05-09-2019 - |
質問
私は作に取り掛かる前にcssプロパティの問題を redispatch マウスイベントActionScript3、私は確かに少しincredulous。まで縮小しているもの MouseEvent.clone()
の方法に現れるのは、完全に破となりました。以下のイベントハンドラ:
private function handleMouseMove( evt : MouseEvent ) : void
{
trace("mousemove", evt.stageX, evt.stageY);
var newEvt : MouseEvent = evt.clone() as MouseEvent;
trace("mousemoveclone", newEvt.stageX, newEvt.stageY);
}
結果、以下の出力は、ad infinitum:
mousemove 167 206
mousemoveclone 0 0
この試合でそのコードでしたredispatchingのMouseEventを果たしたが私の仮説にクローン機能です。
これは直接の相反するかリンク先の文書を示し実現されなければならない限り、いい。私は全体の損失はどのようなかったのではないことが原因になる恐れがあること。かったのAS3ん本当に忘れて読み自分の書類 Event.clone()
?
で仕事ができます代わりに使用関数オブジェクトのための具体的使用例ですが、私はあまり好きではないのです。そのアイデア?
編集: のlocalXとlocalY員が正しくクローニングをようで、私ものとしています。
解決
は、既知のバグを厥。あなたはバグレポートをここに見ることができます: http://bugs.adobe.com/jira/ブラウズ/ FP-343 の
他のすべては、しかしクローンを取得する必要があります。バグが修正されるまで、あなたは常にだけで、手動でのstageXおよびstageYというを割り当てることができます。
他のヒント
私はこのスレッドが7ヶ月休止している実感が、ちょうどこのビット更新するには - これは、FP10とFlex4でまだアクティブです。あなたがイベントを再ディスパッチ場合にも起こります。すなわち:ます。
private function mouseListener( e:MouseEvent ):void
{
dispatchEvent( e );
}
それは、dispatchEvent()呼び出しはクローン()と同等であると思われるのでのstageXおよびstageYというが0に設定されている
このかわいらしい古いデリケートな問題がでたようになったものがインターネットで調べのようなソリューションは、うちの間で広く受け入れられてい包括的です。
その理由をこなして"固定"で働くことがあります。のstageXとstageY値計算ときに呼び出しのゲッターを使用し、イベントの目標のlocalToGlobalに変換します。する必要があることがわかりその数は正確なターゲットオブジェクトでは位置、スケール、回転以降に派遣されました。
お二つのオプションが必要redispatch MouseEvent正しいstageXとstageYる値は次のとおりです。
カサブクラスでは、MouseEventオーバーライドするのstageXとstageY setterか.お店の目標をlocalToGlobal計算は自分でできる店静的価値stageXとstageYの値を用いることがありますクローンのイベントです。
延長スプライトを追加しますディスパッチャのように、株式MouseEventます。