2010-12-15 90 views
0

我越來越 - TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法。在final_fla :: MainTimeline/frame2()錯誤#1009:在Flash項目

我的大部分項目完美地工作 - 但加載照片的一部分在按下按鈕時不會執行任何操作。我的代碼 -

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); 
} 
+1

什麼是loadWindow?它是在舞臺上宣佈的嗎? – Mattias 2010-12-15 20:25:19

+0

它是一個UIloader,是的,它在舞臺上與該實例名稱 – Expecto 2010-12-15 20:28:25

+0

更新了我的答案。你確定UILoader存在於你開始腳本的框架中嗎? – Mattias 2010-12-15 20:43:43

回答

2

修訂

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未創建
  • LOADWINDOW不接受源參數/ setter方法
+0

觸發switchPics的按鈕與loadWindow位於同一幀。這就是爲什麼它對我沒有意義,它應該工作! – Expecto 2010-12-15 20:49:58

+0

如果您沒有按鈕直接觸發它會發生什麼?只需運行goPlay(null)並查看會發生什麼。適用於我。 – Mattias 2010-12-15 20:53:15

+0

如果您調試電影......您會在哪一行發生崩潰? – Mattias 2010-12-15 21:03:11

0

有時對象尚未加載。 這可以解決:

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

有時,事件監聽器應該被刪除解決這個問題

UPDATE

我測試的代碼,我認爲,馬蒂亞斯是正確的。看你把UILoader的使用實例名稱LOADWINDOW並把它放在然後在項目的所有幀測試

+0

我的測試http://www.sergio-lima.com/test.rar – Sbml 2010-12-15 21:05:34

1

看起來你缺少的一個分號幀:

play_btn.addEventListener(的MouseEvent .CLICK,goPlay)

就在第40行,你得到錯誤

+0

heh - 很好的一點,可悲的是,即使有它我得到相同的錯誤 – Expecto 2010-12-15 21:57:44

+0

是否play_btn實例實際上稱爲play_btn?如果沒有分號,錯誤消息的行號可能已關閉。 – 2010-12-15 22:23:02