2014-09-24 3 views
1

Google 더블 클릭 스튜디오 용 배너 작업 중. 부모 SWF는 하위 SWF를로드하고 스테이지에 추가합니다. 우리 아이의 부모 swf 스테이지에 액세스해야합니다. 내가 어떻게 그럴 수 있니?doubleclick 스튜디오. 부모 단계에 액세스하십시오. AS3

이 내 자식 SWF 내가 액세스를 무대을 원하는 문서 클래스가

import com.google.ads.studio.HtmlEnabler; 
import com.google.ads.studio.events.StudioEvent; 
import com.google.ads.studio.display.StudioLoader; 
import flash.events.Event; 
import flash.net.URLRequest; 
import flash.display.MovieClip; 

var enabler:HtmlEnabler = HtmlEnabler.getInstance(); 
enabler.init(this); 

var loadedHandler:Function = function(event:StudioEvent):void { 
    var myLoader:StudioLoader = new StudioLoader(); 
    var req:URLRequest = new URLRequest("child.swf"); 
    myLoader.load(req); 
    holder.addChild(myLoader); 
} 

부모님 코드입니다. 문제는 다음 단계에

_enabler = new ProxyEnabler(); 
stage.align = StageAlign.TOP_LEFT; 

내가 얻을 : # 1009 : null 객체 참조의 속성이나 메서드에 액세스 할 수 없습니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?

답변

0

this.parent.stage 트릭을해야합니다. 자녀가 부모/무대에 추가 된 후에 사용해야합니다. 참고 : 다른 설정이 필요하지 않으면 stage.align = StageAlign.TOP_LEFT;을 부모로 이동할 수 있습니다.

0

이 작품에 2 센트를 내고 싶습니다. 나는 다른 답변을 시도했지만 작동하지 않았다. Doubleclick Support와 연락을하고 나에게 완벽하게 해결 된 답변을주었습니다. 이 예제에서는 무대 mouseover 및 mouseout 이벤트 처리기를 생성합니다. 당신의 예에서

당신은

stage.align = StageAlign.TOP_LEFT; 

여기

this.addEventListener(Event.ADDED_TO_STAGE, isAddedToStage); 
    function isAddedToStage(e){ 
     stage.align = StageAlign.TOP_LEFT; 
    } 

그리고 무대 마우스 오버와로 마우스 이벤트 핸들러 내 예는 것으로 변경합니다.

this.addEventListener(Event.ADDED_TO_STAGE, isAddedToStage); 
function isAddedToStage(e){ 
    stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoved); 
} 

function mouseMoved(evt:Event):void 
{ 
    //custom script here 
    mouseIsOver = true; 
    stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoved); 
    stage.addEventListener(Event.MOUSE_LEAVE, mouseLeft); 
} 
function mouseLeft(evt:Event):void 
{ 
    //custom script here 
    mouseIsOver = false; 
    stage.removeEventListener(Event.MOUSE_LEAVE, mouseLeft); 
    stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoved); 
}