konto usunięte

Temat: Problem z przekierowaniem z baneru + problem z Smart Ad...

Witam. W piątek otrzymałem zlecenie, na odtworzenie baneru wg specyfikacji z Smart Ad Server i zaimplementowanie Clicktag'u. Zlecenie dostaliśmy od gościa, którego Klient zlecił to jemu, ale sam sobie nie poradził z racji, że jest tylko grafikiem.

Odtworzyłem całą animację i dodałem nad wszystkim warstwę klikalną na cały obszar banera z nieprzezroczystością 0% oraz na nowej warstwie kod podany w specyfikacji od Smart Ad Server. Przy publikowaniu do swf'a kompilator wywalał błąd, że funkcja nie zwraca wartości, ale rozumiem, że to z powodu braku zewnętrznej zmiennej, którą pobiera w celu ustawienia linku. Problem w tym, że gotowy swf nie reaguje na kliknięcie, a nawet po najechaniu kursorem nie pojawia się "rączka" sygnalizująca obszar klikalny, chociaż w kodzie AS3 jest wymuszony buttonMode = true; dla instancji przycisku. Postanowiliśmy, że póki nie rozwiążemy problemu zrobimy zwykłe przekierowanie za pomocą navigateToURL. Tutaj pojawia się drugi problem. W gotowym swf'ie link działa, ale tylko po otwarciu w IE, Safari oraz FF. W Operze, Chrome i lokalnie z dysku przekierowanie już nie działa. Sprawdziłem te kilka linijek kodu ze 100 razy i nie znalazłem żadnego błędu. Kod jest identyczny jak w przypadku banerów, które robiłem wcześniej i wszystko było w porządku.

Tutaj kod dla prostej wersji z przekierowaniem na sztywno:

btn.buttonMode = true;
btn.addEventListener(MouseEvent.CLICK, goToWWW);

function goToWWW(e:MouseEvent):void {
navigateToURL(new URLRequest("http://www.google.pl"), "_self");
};

A tutaj kod clicktagu podany w specyfikacji Smart Ad Server

import flash.external.ExternalInterface;
import flash.net.URLRequest;
import flash.net.navigateToURL;
btn_click.mouseChildren = false;
btn_click.buttonMode = true;
btn_click.addEventListener(MouseEvent.MOUSE_UP,click)
var target = root.loaderInfo.parameters.target;
var clicktag = root.loaderInfo.parameters.clicktag;
function click(e:MouseEvent)
{
var browserName:String = getBrowserName();
if(browserName == "IE")
ExternalInterface.call("function setWMWindow() {window.open('"+ clicktag + "');}");
else
navigateToURL(new URLRequest(clicktag), target);
}
function getBrowserName():String
{
var browser:String;
try{ var browserAgent:String = ExternalInterface.call("function getBrowser(){return navigator.userAgent;}") } catch(error:Error){ trace(error); return
'Undefined'; };
if(browserAgent.indexOf("Firefox") >= 0)
browser = "Firefox";
else
if(browserAgent.indexOf("Safari") >= 0)
browser = "Safari";
else
if(browserAgent.indexOf("MSIE") >= 0)
browser = "IE";
else
if(browserAgent.indexOf("Opera") >= 0)
browser = "Opera";
else
browser = "Undefined";
return browser;
}

z clicktagiem spotkałem się pierwszy raz i z początku nie do końca kumałem po co to i jak ma działać ^^