2011-06-18 15 views
0

私が作業しているモバイルゲームに広告を表示するために、次のコードを使用しています。それはうまく動作しますが、私はゲームが再生される前にステージから広告を削除するclickStart関数に何を入れるべきかわかりません。私はremoveChildで遊んでいますが、動作させるようには見えません。AS3 - 子供の問題を取り除く

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.*::[email protected](); 
    l.addEventListener(MouseEvent.CLICK, onAdClick); 

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

    } 
} 

答えて

0

変数がスコープを使い果たしたため、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"); 
} 
+0

あなたは可能性があるもリスナーをMouseEvent.CLICKに削除します。さらに、onAdple関数をonComplete関数から移動することをお勧めします。 – Bakapii

+0

ありがとうございます。完璧に動作します。 – Rich

関連する問題