Ваша техника погрузчика кажется самой вменяемой. Одним из преимуществ является то, что вы можете сделать его универсальным, чтобы он мог загружать любое объявление по вашему желанию с таким количеством экземпляров на странице, сколько вам нужно, при этом всегда получая одинаковые данные о кликах. Это упрощает необходимость сбора нескольких типов данных о кликах, которые иногда генерируют разные объявления в формате Flash.
Вот код, который я получил, заранее извиняюсь за большие фрагменты.
ImportMe.as (имеет экземпляр кнопки на сцене с именем myButton)
package
{
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.events.MouseEvent;
public class ImportMe extends MovieClip
{
public function ImportMe()
{
myButton.addEventListener(MouseEvent.CLICK, button_OnClick);
}
private function button_OnClick(event:MouseEvent):void
{
// shifts the button right 10 pixels to prove the event fired
myButton.x += 10;
}
}
}
Tester.as (загружает клип ImportMe.swf, сгенерированный из предыдущего кода)
package
{
import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.*;
public class Tester extends MovieClip
{
public function Tester()
{
var request:URLRequest = new URLRequest("importme.swf");
var loader:Loader = new Loader();
loader.addEventListener(Event.COMPLETE, loader_OnComplete);
loader.addEventListener(MouseEvent.CLICK, loader_OnClick);
loader.load(request);
addChild(loader);
}
private function loader_OnComplete(event:Event):void
{
trace("loaded");
}
private function loader_OnClick(event:MouseEvent):void
{
trace("clicked");
}
}
}
Единственное, что в этом примере не проверяется, это то, будет ли внешнее событие сработать до того, как внутренний клип выполнит перенаправление URL.