Из ВК

16 февраля 2010

Flash баннеры с динамическими targetURL и targetWindow на ActionScript 3

ActionScript 3 коварная штука, выбивающая из колеи не подготовленных копипастеров кода. В частности многомиллионный рекламный веб-бизнес одного сибирского города опирается на хрупкие плечи программистов не понимающих, что они делают. В частности столкнулся тут с проблемой взаимопонимания нашей компании, как рекламодателя, и нескольких(!) сайтов как рекламных площадок. В частности они мне долго пытались объяснить буквально следующими словами:
Создайте прозрачную кнопку, по клику на которой должен происходить переход на рекламируемый сайт. Для кнопки пропишите следующее действие:
on (release) {
  getURL(targetURL, targetWindow)
}
Многие узнают в этих словах это фактически цитата из руководства по созданию кликабельного баннера на ActionScript 2. По факту (как потом я уже допёр) товарищи пытались сказать следующее:
Баннер не должен нести в себе ссылку на Ваш сайт, он должен принимать её по передаваемым во флеш аргументам с именами targetURL для ссылки и targetWindow для окна в котором будет открыта ссылка ("_blank", "_top" и т.д.).
В общем видимо люди не знают, что в 3-й версии ActionScript этот код не работает, для 2-й же вставляйте его прямо так, как он приведён в цитате. Так вот, для 3-й версии код той саймой кнопки банера, о которой сообщил нам специалист выглядит так:
mybanlink.addEventListener(MouseEvent.CLICK, buttonClickHandler);

function buttonClickHandler(event:MouseEvent):void {
  navigateToURL(new URLRequest(root.loaderInfo.parameters.targetURL),
    root.loaderInfo.parameters.targetWindow);
}
Кстати кнопку нужно обозвать banbutton, а то не заработает.