Flash 1180错误:调用as3中可能未定义的方法addFrameScript
您好,我在as3中遇到这个1180错误。我如何解决这个问题?我用谷歌搜索它,但我无法将解决方案应用到我的代码中。我对as3非常陌生。谢谢您的帮助。您有时间线代码吗?AddFrameScript()是被调用以允许执行时间线代码的方法。我自己也看到过这个错误Flash 1180错误:调用as3中可能未定义的方法addFrameScript,flash,actionscript-3,Flash,Actionscript 3,您好,我在as3中遇到这个1180错误。我如何解决这个问题?我用谷歌搜索它,但我无法将解决方案应用到我的代码中。我对as3非常陌生。谢谢您的帮助。您有时间线代码吗?AddFrameScript()是被调用以允许执行时间线代码的方法。我自己也看到过这个错误 只要确保您的任何资产中没有任何时间轴上的代码,这些代码就会消失。我也遇到了这个问题。问题是,我的容器电影剪辑扩展了Sprite,其中一个控件被转换为具有属性的flash组件。。。我有一种感觉,Flash试图在时间轴上设置这些属性的值。从后台删除
只要确保您的任何资产中没有任何时间轴上的代码,这些代码就会消失。我也遇到了这个问题。问题是,我的容器电影剪辑扩展了Sprite,其中一个控件被转换为具有属性的flash组件。。。我有一种感觉,Flash试图在时间轴上设置这些属性的值。从后台删除组件并将其从库中添加修复了30分钟后的问题….我解决了问题,现在我成功地使用了外部AS类,同时在时间轴上实现了一些其他功能: 只需遵循以下简单的“规则”即可解决问题:
- 如果只想从外部类加载所有内容,则必须将.fla文件“链接”到.as(“文档类”): 时间线使用addFrameScript函数
- 如果您想使用类中的内容,同时在时间轴上执行其他操作,您只需在时间轴上放置一条类似的线:
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
文档类
,并且也直接在fla中编写代码
如果是这种情况,解决方案很简单:如果希望继续在时间轴上编写代码,可以只在外部.as文件而不是fla中编写代码,也可以不使用文档类
。
您得到的错误代码表明,您的时间轴上有代码,其行为类似于MovieClip
,而文档类扩展了Sprite
,因此不知道名为addFrameScript
的方法(将时间轴上的代码编译为SWF文件时调用此方法)
简言之,我建议你改变
public类SetTimeoutExample扩展了Sprite{
到
public类SetTimeoutExample扩展了MovieClip{
并将所有fla代码移动到文档类
中
TypeError:错误#1034:类型强制失败:无法转换_game@2a9c50b1要闪烁.display.MovieClip。
在游戏中::玩家/更新()
在游戏本身/update()中
如果在将代码添加到movieclip(不在时间轴上)时出现问题(标题)中的错误,请尝试以下操作:
可能是库项(movieclip)的actionscript属性设置为从Sprite(基类)继承…某种编码错误…检查movieclips actionscript属性(在库中,右键单击(在movieclip上)/属性).一些论坛说是extend MovieClip,但当我尝试这一点时,又出现了一些错误。我同意alex的观点,在上面的代码中,extends sprite是错误的,应该是extends MovieClip。
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
var myClassObject:myClass = new myClass();
this.addChild(myClassObject);