【问题标题】:Error #1009: in flash project错误 #1009:在 Flash 项目中
【发布时间】:2010-12-15 20:08:44
【问题描述】:

我收到了这个错误-

TypeError:错误 #1009:无法访问 null 的属性或方法 对象引用。在 final_fla::MainTimeline/frame2()

我的大部分项目仍然可以完美运行 - 但加载照片的部分在按下按钮时没有任何作用。我的代码 -

import fl.transitions.Tween;
import fl.transitions.easing.*;

stop();

function goHome (e:MouseEvent):void{
gotoAndStop("Home");
}
home_btn.addEventListener(MouseEvent.CLICK, goHome);

function goAbout (e:MouseEvent):void{
gotoAndStop("About");
}
about_btn.addEventListener(MouseEvent.CLICK, goAbout);

function goWhat (e:MouseEvent):void{
gotoAndStop("What");
}
what_btn.addEventListener(MouseEvent.CLICK, goWhat);

function goHow (e:MouseEvent):void{
gotoAndStop("How");
}
how_btn.addEventListener(MouseEvent.CLICK, goHow);

function goPricing (e:MouseEvent):void{
gotoAndStop("Pricing");
}
price_btn.addEventListener(MouseEvent.CLICK, goPricing);

function goContact (e:MouseEvent):void{
gotoAndStop("Contact");
}
contact_btn.addEventListener(MouseEvent.CLICK, goContact);



play_btn.addEventListener(MouseEvent.CLICK, goPlay)

var images = new Array();

images[0] = "1.png";
images[1] = "2.png";
images[2] = "3.png";
images[3] = "4.png";
images[4] = "5.png";

var currentImage:int = 0;
var myTimer:Timer = new Timer(5000, 0); // 5 seconds
myTimer.addEventListener(TimerEvent.TIMER, switchPics);

function goPlay(e:MouseEvent) {
   myTimer.start();
}

function switchPics(event:TimerEvent):void {
   currentImage = (currentImage+1)%images.length;
   loadWindow.source = images[currentImage];
   var myTween:Tween = new Tween(loadWindow, "alpha", None.easeOut, 1, 0, 5, true);
}

【问题讨论】:

  • 什么是loadWindow?是在台上宣布的吗?
  • 它是一个 UIloader,是的,它在舞台上使用该实例名称
  • 更新了我的答案。您确定 UILoader 存在于您启动脚本的框架上吗?

标签: flash actionscript-3


【解决方案1】:

更新

var images : Array = new Array();
    images.push("1.png");
    images.push("2.png");
    images.push("3.png");
    images.push("4.png");
    images.push("5.png");

您确定 UILoader 存在于您启动脚本的框架上吗?我测试了除了按钮之外的所有东西,它工作正常。我认为当您触发 switchPics 函数时,您当前所在的框架上不存在 UILoader (loadWindow)。


如果存在 loadWindow,一切看起来都很好。

我的猜测:

  • loadWindow 没有声明
  • 加载窗口未创建
  • loadwindow 不接受源参数/设置器

【讨论】:

  • 触发switchPics的按钮和loadWindow在同一帧。这就是为什么它对我没有意义,它应该工作!
  • 不按按钮直接触发会怎样?只需运行 goPlay(null) 看看会发生什么。为我工作。
  • 如果你调试电影......你会在哪一行崩溃?
  • TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 final_fla::MainTimeline/frame2()[final_fla.MainTimeline::frame2:40]
  • 第 40 行?你文件中的第 40 行是哪一行?
【解决方案2】:

看起来您在以下位置缺少分号:

play_btn.addEventListener(MouseEvent.CLICK, goPlay)

就在您收到错误的第 40 行之前

【讨论】:

  • play_btn 实例实际上叫play_btn 吗?如果没有分号,错误消息的行号可能已关闭...
【解决方案3】:

有时对象尚未加载。 这可以通过以下方式解决:

this.addEventListener(Event.ENTER_FRAME,checkLoaded)
function checkLoaded(e:Event){
    if(mc){
        //something
        this.removeEventListener(Event.ENTER_FRAME,checkLoaded)
    }
}

有时应该移除事件监听器来解决这个问题

更新

我测试了代码,我认为 Mattias 是对的。查看您放置 UILOADER 实例名称 loadWindow 的框架,然后尝试将其放入项目的所有框架中进行测试

【讨论】:

    猜你喜欢
    • 2012-08-05
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    相关资源
    最近更新 更多