【问题标题】:AS3 MovieClip keeps giving me a NULL object referenceAS3 MovieClip 不断给我一个 NULL 对象引用
【发布时间】:2011-12-03 04:50:19
【问题描述】:

我有一个 Android Air 应用程序,我在其中将 png 图像导入到第二帧的舞台,并将其转换为一个符号作为影片剪辑。我正在使用此图像作为影片剪辑执行悬停动画,它效果很好,但是当我从动画所在的第 2 帧开始,我移动到第 3、4、5 或 6 帧,然后我回到帧2,我的应用程序在再次引用影片剪辑时抛出错误。错误是 1009 无法访问空对象引用。 所以在我看来,一旦时间线从第 2 帧移开,它就会擦除对转换为影片剪辑的导入图像的引用....这是正确的吗?有没有办法让时间轴将此图像作为影片剪辑引用,这样我就可以随时回到这一帧?

谢谢 科学

【问题讨论】:

  • 你使用关键帧吗?如果是,您是否在所有关键帧上为您的 MC 命名(相同)?
  • 在关键帧之间切换时,所有加载的数据都会被擦除
  • 是的,我正在使用关键帧。好的,这是有道理的。我应该将图片加载到舞台上,然后使用代码将其转换为影片剪辑吗?
  • 您可以将您的图片导入到您的库中转换为符号并通过代码将其动态添加到您的舞台,当您用图片实例化类时,将对象引用到变量,这样您就不会' t 丢失指针。如果每次切换到帧时都会丢失数据,请使用主文档类文件来放置所有代码。
  • 这是个好主意。因此,当我将对象导入舞台时,我只需创建一个具有相同名称的类并从那里进行操作?

标签: android flash actionscript-3 adobe


【解决方案1】:

您可以在每次停在包含影片剪辑的帧处时侦听 EXIT_FRAME 事件:

function miClick(e:MouseEvent) { 
    content.gotoAndStop(e.currentTarget.parent.name); 

    if(e.currentTarget.parent.name == "2") { 
        content.addEventListener(Event.EXIT_FRAME, this.hdExitFrame); 
        productMenu.alpha = 1; 
        trace(content.products); 
    } else { 
        productMenu.alpha = 0; 
    } 
} 

function hdExitFrame(e:Event) { 
    trace(e.target.currentFrame + ", " + e.target.products); 
    content.removeEventListener(Event.EXIT_FRAME, this.hdExitFrame); 
} 

在这个特定的代码片段中,content.products 一开始通常为 null,但在 hdExitFrame 中却不是。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多