双击工作室。访问父级。 AS3

时间:2014-09-24 09:12:11

标签: actionscript-3 flash double-click

我在谷歌双击工作室的横幅上工作。我的父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:无法访问空对象引用的属性或方法。 有谁知道如何解决这个问题?

2 个答案:

答案 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);
}