2011-09-23 130 views
0

我有一个AS3函数加载和音频文件,然后播放它。我有第一个音频文件工作的预加载器 - 现在我需要在第二个音频文件启动之前运行预加载功能。Actionscript 3 - 从另一个函数内部调用onLoadProgress函数

myMusic.addEventListener(ProgressEvent.PROGRESS, onLoadProgress2, false,0, true); 
    myMusic.addEventListener(Event.COMPLETE, playMusicNow, false, 0,true); 
myMusic.load(soundFile, myContext); //This code works 

这里是剧中代码:

//此代码不能正常工作

function receiveText1(value:String):void { 

     channel.stop(); 
     channel2.stop(); 
     songPosition = 0; 
     soundFile2 = new URLRequest(jsVariableValue1); 
     myMusic2= new Sound(); //Intstantation 
     myMusic2.load(soundFile2, myContext); 
      //need to run preloader here 
     soundFile2exist = null; 
     } 

这是我的事件侦听器和预加载:

myMusic2.addEventListener(ProgressEvent.PROGRESS, onLoadProgress, false,0, true); 
    myMusic2.addEventListener(Event.COMPLETE, playMusicNow, false, 0,true); 

function onLoadProgress(evt:ProgressEvent):void { 
    progBar.alpha = .70; 
    prcLoaded.alpha = .70; 
    var pcent:Number=evt.bytesLoaded/evt.bytesTotal*100; 
    prcLoaded.text =int(pcent)+"%"; 
    progBar.width = 90 * (evt.bytesLoaded/evt.bytesTotal); 
} 

我想我可致电

onLoadProgress(evt:ProgressEvent); 

从函数中,但我发现了一个错误

1084: Syntax error: expecting rightparen before colon. 
+0

这是编译错误还是运行时错误? –

+0

你不能调用一个声明参数类型的函数。考虑通过监听器函数和代码中的另一个地方创建共享功能。 – papachan

+0

那么有可能调用相同的函数吗?或者我应该把我的事件监听器放在recieveText1函数中? – user547794

回答

0

你为什么要手动调用“onLoadProgress”?
应该自动执行(如果你的文件没有被缓存,并且要添加的听众正确
我看到你的addEventListener在你的问题,但你是不是表示在/当你加入这个监听器。

无论如何,如果你想执行你的onLoadProgress你应该做这样的事情:

var bytesLoaded:uint = 50; 
var bytesTotal:uint = 100; 
var evt:ProgressEvent = new ProgressEvent(ProgressEvent.PROGRESS, false, false, bytesLoaded, bytesTotal); 
onLoadProgress(evt); 

必须注意的是,你需要创建一个“假”的进展情况,并分配信息bytesLoaded假货和bytesTotal值
而甚至知道onLoa dProgress将只执行一次。
我确定这不是你想要的。

请更好地解释你想做什么。

+0

我会尽力解释一点。我有一个从JavaScript调用的函数加载MP3。我需要在单击javascript按钮时运行onLoadProgress事件。我认为它会自动使用eventListener,但它不起作用。加载程序在加载初始mp3时工作,但在第二个(recieveText1)时不工作。我需要在开始播放之前重新加载第二首mp3。任何想法我做错了什么? – user547794

+0

我更新了我的问题,使用的代码和不代码的代码 – user547794

0

我在函数内部添加了事件监听器,现在一切正常。

相关问题