2010-06-25 106 views
3
package { 
import flash.display.Sprite; 
import flash.utils.*; 

public class SetTimeoutExample extends Sprite { 
    private var delay:Number = 1000; // delay before calling myDelayedFunction 

    public function SetTimeoutExample() { 
     var intervalId:uint = setTimeout(myDelayedFunction, delay,stopTime); 
    } 

    public function myDelayedFunction():void { 
     if(arguments[0] ==fk.playheadTime) 
     {fk.pause();} 
    } 
} 
}//this is my document class named SetTimeoutExample.as 

import flash.net.URLLoader; 
import fl.video.*; 
import flash.utils.getTimer; 
import flash.events.Event; 


fk.autoPlay = false; 


var myLoaderInfo=new Object(); 


myLoaderInfo.myParamsLoaded = false; 


myLoaderInfo.loaderComplete = loaderComplete; 



this.loaderInfo.addEventListener(Event.COMPLETE, myLoaderInfo.loaderComplete); 



myLoaderInfo.useParams = useParams; 

var myParams:Object = new Object(); 
var myParamsLoaded:Object = new Object(); 

function loaderComplete(myEvent:Event) 
{ 
this.myParams = this.loaderInfo.parameters; 
this.myParamsLoaded = true;//Parametrelerin yuklendigine emin olduk. 

this.useParams(); 

    fk.play(src); 
} 

var src:String; 
var startTime:Number; 
var stopTime:Number; 

function useParams() 
{ 
    var obj:Object = new Object(); 

var j; 
for (j in this.myParams) 
{ 
    if (j == "url") 
    { 
     src = this.myParams[j]; 
    } 
    else if (j=="bas") 
    { 
     startTime = int(this.myParams[j]); 
    } 
    else 
    { 
     stopTime = int(this.myParams[j]); 
    } 
} 
} 

fk.addEventListener(VideoEvent.READY, bitti); 
function bitti(eventObject:VideoEvent):void 
{ 
    fk.seekSeconds(startTime); 


} //this is my player.fla 

您好,我得到這個錯誤1180在as3.how我可以解決這個我谷歌,但我不能應用?對我的代碼的解決方案。我真的很新的as3。感謝您的幫助。1180錯誤:調用可能未定義的方法addFrameScript在AS3

+0

和一些論壇說擴展MovieClip,但是當我嘗試這個我再次得到一些錯誤。 – 2010-06-25 08:40:33

回答

2

你有任何時間表代碼? AddFrameScript()是被調用以允許時間線代碼執行的方法。我自己也看到了這個錯誤。

只要確保你沒有在時間軸上的任何代碼在你的任何資產,這應該消失。

1

我只是有這個問題爲好。問題是我的容器影片剪輯擴展了Sprite,而其中一個控件被轉換爲具有屬性的Flash組件......我有一種感覺,Flash試圖在時間軸上設置這些屬性的值。從舞臺中刪除組件並從庫中添加它解決了問題,我拉我的頭髮30分鐘後....

+0

http://www.ericd.net/2008/11/1180-call-to-possibly-undefined-method.html我同意alex,它在上面的代碼中,擴展精靈是錯誤的,應該擴展movieClip 。 – nycynik 2011-08-29 16:19:37

2

我解決了這個問題,現在我成功地使用外部AS類,同時實施一些在時間軸上的其他功能:

的問題是可以解決的只是下面這個簡單的「規則」:

  • ,如果你只想從外部類負載的一切,你要「鏈接」了。 fla文件添加到.as文件(「文檔類」):

    時間軸使用addFrameScript功能

  • ,如果你想使用從類的東西,一邊做別的事情在時間軸上,你只要把時間軸上的類似線:

    var myClassObject:myClass = new myClass(); 
    this.addChild(myClassObject); 
    
+0

this.addChild(myClassObject)使它工作,謝謝! – c0d3Junk13 2014-08-17 00:16:33

6

讓我直截了當地說明:你已經在FL屬性中設置了一個Document Class,並且直接在fla中編寫代碼?

如果是這種情況,解決方法很簡單:或者只將代碼寫入外部.as文件而不是fla或不使用Document Class如果您希望繼續在Timeline上編寫代碼。 你,你有你的Timeline其行爲類似於MovieClip碼狀態,而你Document Class延伸Sprite,因此是不知道的方法稱爲addFrameScript(在編譯代碼,在Timeline成SWF文件調用此方法的錯誤代碼)。

總之,我勸你改變

public class SetTimeoutExample extends Sprite {

public class SetTimeoutExample extends MovieClip {

和移動你的所有FLA代碼Document Class

0

類型錯誤:錯誤#1034:類型強制失敗:無法the_game @ 2a9c50b1轉換成的flash.display.MovieClip。 在遊戲::播放器/更新() 在the_game_itself /更新()

與速度有點慢......

0

如果一個影片剪輯添加代碼(當問題(標題)的錯誤發生在你身上不是在時間軸上),試試這個:

它可能是庫項目(movieclip)有它的動作屬性設置爲從Sprite(baseclass)繼承...某種編碼錯誤...檢查電影剪輯動作屬性(在庫中,右鍵點擊(在動畫片段上)/屬性)。

相關問題