1180错误:在as3中调用可能未定义的方法addFrameScript

时间:2010-06-25 08:22:02

标签: flash actionscript-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 

嗨,我在as3中得到了这个1180错误。我可以解决这个问题吗?我谷歌但我不能将解决方案应用到我的代码中。我真的很新as3.thanks任何帮助。

6 个答案:

答案 0 :(得分:6)

让我直截了当地说:你在fla属性中设置了一个Document Class,并且还在fla中直接编写代码?

如果是这种情况,解决方案很简单:要么只在外部.as文件中编写代码而不是fla,要么在Document Class继续编写代码时不要使用Timeline。 您获得的错误代码表明您的Timeline上的代码与MovieClip的行为类似,而Document Class扩展Sprite,因此不知道名为{{addFrameScript的方法1}}(在将Timeline上的代码编译成SWF文件时调用此方法。

简而言之,我建议你改变

public class SetTimeoutExample extends Sprite {

public class SetTimeoutExample extends MovieClip {

并将所有fla代码移至Document Class

答案 1 :(得分:2)

你有时间轴代码吗? AddFrameScript()是被调用以允许时间轴代码执行的方法。我自己也看到了这个错误。

请确保您的任何资产中的时间轴上没有任何代码,这些代码应该消失。

答案 2 :(得分:2)

我解决了这个问题,现在我在TimeLine上实现了一些其他功能时成功使用了外部AS类:

问题可以通过这个简单的“规则”来解决:

  • 如果您只想从外部CLASS加载所有内容,则必须将.fla文件“链接”到.as(“文档类”):

    时间轴使用addFrameScript功能

  • 如果你想在课堂上使用某些东西,在时间轴上做其他事情的话,你必须在TimeLine上输入类似的一行:

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

答案 3 :(得分:1)

我也遇到过这个问题。问题是我的容器影片剪辑正在扩展Sprite和内部,其中一个控件被转换为具有属性的flash组件......我有一种感觉Flash试图在时间轴上设置这些属性的值。从舞台上删除组件并从库中添加组件可以在30分钟后将头发拉出来为我解决问题....

答案 4 :(得分:0)

GOT

TypeError:错误#1034:类型强制失败:无法将the_game @ 2a9c50b1转换为flash.display.MovieClip。     在Game :: Player / update()     在the_game_itself / update()

有点慢......

答案 5 :(得分:0)

如果在将代码添加到动画片段(不在时间轴上)时问题(标题)中出现错误,请尝试以下操作:

可能是库项目(movieclip)已经将它的actionscript属性设置为从Sprite继承(baseclass)...某种编码错误...检查movieclips actionscript属性(在库中) ,右键单击(在动画片段上)/属性)。