`

Flash AS3[转载]Error #2037: 函数调用序列不正确,或前面的调用不成功。

    博客分类:
  • Flex
阅读更多
Error #2037: 函数调用序列不正确,或前面的调用不成功。

这个错误,在网上搜索了下,没有找到很明显的实质解决办法,于是找来以前自己学习时做的DEMO.
Error #2037:
Sound对象只允许被load一个声音流,即使close()了也不能加载另一个声音.
一旦对某个 Sound 对象调用了 load(),就不能再将另一个声音文件加载到该 Sound 对象中。 若要加载另一个声音文件,请创建新的 Sound 对象。
这是网上的描述,但像我这种不喜欢看书的人,还是找不到光明,最后发现是sound要再load时,需要重新new下它,只有两天班就可以开长假了,所以字里行间都静不下心来揣摩了。
实际是只要一句:
Error #2037:
Sound对象只允许被load一个声音流,即使close()了也不能加载另一个声音.
一旦对某个 Sound 对象调用了 load(),就不能再将另一个声音文件加载到该 Sound 对象中。 若要加载另一个声音文件,请创建新的 Sound 对象。

它的意思是归纳为一句就是:
var yoursound:Sound=new Sound();----全局定义
yoursound=new Sound();----再导入时定义

恼人的[Error #2037: 函数调用序列不正确,或前面的调用不成功。]就不会再出现了.

顺便贴下自己的

import flash.display.MovieClip;
import flash.display.Sprite;
import flash.errors.IOError;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;

var snd:Sound=new Sound();;
var sndchn:SoundChannel;
var i:int=1;
var tmp:String = "http://10.1.3.16/imgs/1-"+String(i)+".mp3";


var _btn:Sprite= new Sprite();
_btn.graphics.beginFill(0xff0000);
_btn.graphics.drawRect(0, 0, 30, 30);
_btn.graphics.endFill();
_btn.width = 100;
_btn.height = 100;
_btn.x = 10;
_btn.y = 10;
//_btn.buttonMode = true;
addChild(_btn);
_btn.addEventListener(MouseEvent.CLICK, clickhandle);



function clickhandle(e:MouseEvent):void {
playmp3(tmp);

}

function playmp3(tmp:String):void
{
var mp3url:URLRequest = new URLRequest(tmp);
snd = new Sound();          
snd.addEventListener(ProgressEvent.PROGRESS, onPrg);
snd.addEventListener(IOErrorEvent.IO_ERROR, onError);
snd.load(mp3url);
trace("mp3: "+mp3url.url);
}

function onError(e:IOErrorEvent):void
{
trace("MP3载入过程发生异常!");
}

function onPrg(e:ProgressEvent):void
{
var pct:int = Math.round(snd.bytesLoaded * 100 / snd.bytesTotal);
trace("进度:" + pct + "%");
if (pct > 5 && sndchn == null)
{

sndchn = snd.play();
sndchn.addEventListener(Event.SOUND_COMPLETE, onPlayend);
}
}


function onPlayend(e:Event):void
{
trace("播放完成");
sndchn.stop();
sndchn = null;
tmp="http://10.1.3.16/imgs/1-"+String(i++)+".mp3";
playmp3(tmp);
}

摘自:http://blog.sina.com.cn/s/blog_6c76f84501015x6y.html
分享到:
评论

相关推荐

    语法分析&&编译原理实验

    输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否则输出“error”。 三、 结果验证 1. 输入:begin_a:=9;_x:=2*3;_b:=a+x_end# 输出:success! 2. 分别验证其他错误(至少2个...

    node-loopy:异步循环以正确管理常规函数调用

    -1 for infinity onError: Loopy.OnError.IGNORE || Loopy.OnError.EXPONENTIAL_BACKOFF || Loopy.OnError.STOP // behaviour when there is an error, maxInterval: 60*60*1000})// loop.status() === Loopy....

    freemarker总结

    有一种特殊的字符串称为raw字符串,被认为是纯文本,其中的\和{等不具有特殊含义,该类字符串在引号前面加r,下面是一个例子: ${r"/${data}"year""}屏幕输出结果为:/${data}"year" 转义 含义 ...

    LuaBind 源码 (Lua增强库)

    如果你想给一个函数调用指定自己的错误捕获处理函数(error handler),可以参阅 pcall errorfunc 章节的 set_pcall_callback . 7.4 使用Lua协程 为了使用Lua协程,你必须调用 lua_resume(),这就意味着你不能用先前...

    你必须知道的495个C语言问题

    6.21 当数组是函数的参数时,为什么sizeof不能正确报告数组的大小? 6.22 如何在一个文件中判断声明为extern的数组的大小(例如,数组定义和大小在另一个文件中)?sizeof操作符似乎不行。 6.23 sizeof返回的大小...

    jQuery详细教程

    callback 参数是在 hide 或 show 函数完成之后被执行的函数名称。您将在本教程下面的章节学习更多有关 callback 参数的知识。 实例 $("button").click(function(){ $("p").hide(1000); }); 亲自试一试 ...

    《你必须知道的495个C语言问题》

    1.14 我似乎不能成功定义一个链表。我试过typedef struct{char *item; NODEPTR next;}* NODEPTR; 但是编译器报了错误信息。难道在C语言中结构不能包含指向自己的指针吗? 7  1.15 如何定义一对相互引用的结构?...

    数据结构(Python语言)

    6)参照层次遍历函数,定义一个新函数 findBt(self, Root, x),输入一个指定的字符x,在指定的一棵二叉树中查找值为x的结点,如果查找成功,则输出“OK”,否则输出“ERROR”; 7)参照层次遍历函数,定义一个新函数...

    jquery-1.1.3 效率提高800%

    complete 数据类型: Function 当请求完成时执行的函数(在成功或失败之后执行)。这个函数有2个参数: XMLHttpRequest对象和一个描述HTTP相应的状态字符串。 这是一个 Ajax 事件。 function (XMLHttpRequest, ...

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    阿里代码规范题目+答案50道题,不乱码不套路,便宜实惠。 多选 1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚...

    LINGO软件的学习

    这与前面并不矛盾,初始部分是LINGO求解器的需要,并不是描述问题所必须的。 2.3.2 定义派生集 为了定义一个派生集,必须详细声明: •集的名字 •父集的名字 •可选,集成员 •可选,集成员的属性 可用下面的语法...

    C语言FAQ 常见问题列表

    o 7.18 当数组是函数的参数时, 为什么 sizeof 不能正确报告数组的大小 ? * 8. 内存分配 o 8.1 为什么这段代码不行?char *answer; printf("Type something:\n"); gets(answer); printf("You typed \"%s\"\n", ...

    CH2.AJAX —— 让你的 AJAX 实现得更优雅

    onfailed 为调用失败的回调函数(可选) function(errormessage) (例四) 例一: namespace CH2 { class BLL{ [AjaxMethod] // ←原有方法中添加这一属性 // 可设定加密方式和描述信息。如下: ...

    java面试题

    3:让多个不相关的两个线程或进程之间实现通信 为什么要用spring? 答:1、主要将各个框架有效的联系起来,缩短实际编程时间。 2、可以将各个框架进行有效的管理和控制,让数据传输安全。 spring的IOC和DI? 答:...

    powerbuilder

    如果想在椭圆或圆中输出文字或图形,那么应用程序应该首先绘制椭圆或圆,然后使用其它函数在椭圆或圆中输出文字或图形。 -------------------------------------------------------------------------------- ...

    你必须知道的495个C语言问题(PDF)

    1.6 我似乎不能成功定义一个链表。我试过typedef struct f char *item; NODEPTR next; g *NODEPTR; 但是编译器报了错误信 息。难道在C语言中一个结构不能包含指向自己的指针吗? . . . . 3 1.7 怎样建立和理解非常...

    grub4dos-V0.4.6a-2017-02-04更新

    类型[type]:bit 0-3: 播放次数 bit 4: 永远重复 bit 7: 透明背景 type=00:禁止播放 播放n次:序列图像各显示n次,时间独占。可作为启动前导、序幕。 永远重复:序列图像无限循环,时间与菜单共享。可作为菜单...

Global site tag (gtag.js) - Google Analytics