我在谷歌双击工作室的横幅上工作。我的父swf加载一个子swf并将其添加到舞台上。我需要从孩子那里访问父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);
}
我的孩子swf有一个文档类,我想要访问该阶段。 问题是:
_enabler = new ProxyEnabler();
stage.align = StageAlign.TOP_LEFT;
在舞台上我得到:#1009:无法访问空对象引用的属性或方法。 有谁知道如何解决这个问题?
答案 0 :(得分:0)
this.parent.stage
应该做到这一点。确保在将子项添加到父项/阶段后使用它。注意:如果您不需要其他设置,则可以将stage.align = StageAlign.TOP_LEFT;
移至父级。
答案 1 :(得分:0)
想在这件作品上给自己两美分。我尝试了另一个答案,但它没有用。我与Doubleclick支持联系,他们给了我一个完美的答案。在这个例子中,我正在创建一个stage mouseover和mouseout事件处理程序。
在您的示例中,您将更改
stage.align = StageAlign.TOP_LEFT;
是
this.addEventListener(Event.ADDED_TO_STAGE, isAddedToStage);
function isAddedToStage(e){
stage.align = StageAlign.TOP_LEFT;
}
以下是我的示例,其中包含一个stage mouseover和mouseout事件处理程序。
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);
}