【问题标题】:doubleclick studio. access parent stage. AS3双击工作室。访问父阶段。 AS3
【发布时间】:2014-09-24 09:12:10
【问题描述】:

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

【问题讨论】:

    标签: actionscript-3 flash double-click


    【解决方案1】:

    this.parent.stage 应该可以解决问题。确保在将孩子添加到父级/阶段后使用它。注意:如果您不需要其他设置,可以将 stage.align = StageAlign.TOP_LEFT; 移动到父级。

    【讨论】:

      【解决方案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);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-09
        • 2014-06-29
        • 1970-01-01
        • 2012-11-06
        • 2015-01-13
        • 2016-09-01
        • 2021-11-03
        • 1970-01-01
        相关资源
        最近更新 更多