この問題を解決するために多くの時間を費やしました。したがって、基本的には、eventListener を作成して eventListener を削除できる関数を含むクラス (addadd) があります。また、関数に何をすべきか (作成または削除) を伝える別の 2 つのオブジェクト (Symbol1、Symbol2) があります。
package {
import flash.display.*;
import flash.events.Event;
import fl.motion.MotionEvent;
import flash.events.MouseEvent;
public class addadd
{
var stanishev:stanishev_line = new stanishev_line;
public function addadd()
{
// constructor code
}
public function stanishevF(par1)
{
if (par1 == "create")
{
Main.display.addChild(stanishev);
stanishev.name = "stanishev_child";
stanishev.x = -200;
stanishev.y = 500;
stanishev.gotoAndPlay("start");
stanishev.addEventListener(Event.ENTER_FRAME, frameDOstanishev);
}
else
{
trace ("asasasas");
stanishev.removeEventListener(Event.ENTER_FRAME, frameDOstanishev);
}
}
public function frameDOstanishev(e:Event)
{
trace (stanishev.currentFrame);
}
} }
package {
import flash.display.SimpleButton;
import flash.events.MouseEvent;
public class Symbol1 extends SimpleButton
{
var call_creator:addadd = new addadd;
public function Symbol1()
{
// constructor code
addEventListener(MouseEvent.MOUSE_OVER, eventResponse);
addEventListener(MouseEvent.MOUSE_DOWN, eventResponse2);
}
function eventResponse(e:MouseEvent)
{
call_creator.stanishevF("create");
}
function eventResponse2(e:MouseEvent)
{
call_creator.stanishevF("destroy");
}
} }
package {
import flash.display.SimpleButton;
import flash.events.MouseEvent;
public class Symbol2 extends SimpleButton
{
var call_creator:addadd = new addadd;
public function Symbol2()
{
// constructor code
addEventListener(MouseEvent.MOUSE_DOWN, eventResponse2);
}
function eventResponse2(e:MouseEvent)
{
call_creator.stanishevF("destroy");
}
} }
そのため、addadd クラスを作成して Symbol1 からこの eventListener を作成および削除することはできますが、addadd クラスを作成してこの eventListener を作成し、Symbol1 から「create」パラメーターを送信して、「destroy」パラメーターを送信して Symbol2 から削除することはできません!!!
異なるオブジェクトから同じ eventListener を作成および削除するにはどうすればよいですか? このアプローチは、より組織化するためにリスナーを作成および削除することを発見しましたが、これが正しい方法であるかどうかはわかりません。メイン タイムラインのフレーム間を移動するときにリスナーに問題が発生する (エラー: 1009) ため、別のフレームにジャンプする前にリスナーをすべて削除したいと考えています。
ありがとう