AS3 - удалить проблему ребенка - PullRequest
0 голосов
/ 18 июня 2011

Я использую следующий код для отображения рекламы в мобильной игре, над которой я работаю. Он работает нормально, но я не знаю, что добавить в функцию clickStart, чтобы убрать рекламу со сцены до начала игры. Я играл с removeChild, но не могу заставить его работать.

stop();
startButton.addEventListener(MouseEvent.CLICK,clickStart);

function clickStart(event:MouseEvent) {
gotoAndStop("play");
}


var request:URLRequest = new URLRequest("http://soma.smaato.com/oapi/reqAd.jsp");
var variables:URLVariables = new URLVariables();
variables.adspace = "0";
variables.pub = "0";

variables.devip = "127.0.0.1";
variables.format = "IMG";
variables.adcount = "1";
variables.response = "XML";
request.data = variables;
var loader:URLLoader = new URLLoader();

loader.addEventListener(Event.COMPLETE, onComplete);
loader.load(request);


function onComplete(e:Event):void
{
var data:XML = new XML(loader.data as String);
var status:String = data.*::status.toString();
    if(status == "success")
    {
    var ad:XMLList = data.*::ads.*::ad;
    var link:String = ad.*::link.toString();

    var l:Loader = new Loader();
    l.load(new URLRequest(link));
    addChild(l);
l.x = 135;
l.y = 265;
    var clickurl:String = ad.*::action.@target.toString();
    l.addEventListener(MouseEvent.CLICK, onAdClick);

    function onAdClick(e:MouseEvent):void
    {
    var request:URLRequest = new URLRequest(clickurl);
    navigateToURL(request);
    }

  }
}

1 Ответ

0 голосов
/ 19 июня 2011

Вам необходимо переместить объявление Loader за пределы функции onComplete, поскольку переменная выходит за пределы области видимости.

var l:Loader = new Loader();

Вы можете попробовать поместить ее в ту же область, что и эти:

var request:URLRequest = new URLRequest("http://soma.smaato.com/oapi/reqAd.jsp");
var variables:URLVariables = new URLVariables();

тогда вы сможете обновить функцию clickStart примерно так:

function clickStart(event:MouseEvent) {
removeChild(l);
gotoAndStop("play");
}
...