|
查看: 2121|回复: 2
|
addEventListener(Event.Complete, dosometing) 的使用法
[复制链接]
|
|
|
- var loader:URLLoader = new URLLoader();
- // some codes
- var data:String
- loader.addEventListener(Event.Complete, executeThis);
- function executeThis(e:Event) {
- data = e.target.data;
- trace(data); // use output
- doSomethingElse(data);
- }
复制代码 以上的code 有没有可能改成。。。- var loader:URLLoader = new URLLoader();
- // some codes
- var data:String
- loader.addEventListener(Event.Complete, executeThis);
- //execute below when event complete
- trace(data);
- doSomethingElse(data);
- function executeThis(e:Event) {
- data = e.target.data;
- }
复制代码 就是把 doSomethingElse 丢到外面 or main function 里面 instead of 在 executeThis() 里面
我是想到。。如果有很多连续 function 要等 eventComplete的话,function 好像要link 来跳来跳去,很麻烦...
first 里面要等event complete 然后run second(), second 又要等 event complete 然后跑 third()....
比如说:- // 这个简单又好看。。。
- main() {
- first();
- second();
- third();
- forth();
- etc();
- }
复制代码- // 这个麻烦了。。。
- function first() {
- second();
- }
- function second() {
- third();
- }
- function third() {
- etc();
- }
复制代码 不知道有人懂我在讲什么吗。。。
[ 本帖最后由 neobie 于 12-5-2009 05:07 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 13-5-2009 11:17 AM
|
显示全部楼层
原帖由 neobie 于 12-5-2009 05:06 PM 发表 
var loader:URLLoader = new URLLoader();
// some codes
var data:String
loader.addEventListener(Event.Complete, executeThis);
function executeThis(e:Event) {
data = e.target.data;
trace(da ...
你所提供的例子不適當, 正常人也絕對不會那麼寫的
而你所要的則是 Multi Preload 完畢之後才一次性執行某些指定函數
編程是靈活性的技巧, 就看你怎麼運用自己的邏輯思維去完成
var execute:Boolean = false;
var loader:URLLoader = new URLLoader();
var data:String;
loader.addEventListener(Event.COMPLETE, executeThis);
function executeThis(e:Event)
{
data = e.target.data;
if(execute)
{
trace(data);
doSomethingElse(data);
}
} |
|
|
|
|
|
|
|
|
|
|
发表于 13-5-2009 10:23 PM
|
显示全部楼层
怎么会 "麻烦"?? 麻烦不是问题, 只是如果没有好好篇script, 你的filesize 会增加而已, 就算filesize 大也大不了多少. 最重要是 work.
- var loader:URLLoader = new URLLoader();
- // some codes
- var data:String
- loader.addEventListener(Event.Complete, executeThis);
- //execute below when event complete
- trace(data);
- doSomethingElse(data);
- function executeThis(e:Event) {
- data = e.target.data;
- }
复制代码
这样的话, 表示 doSomethingElse(data) 不需要等 任何指示activate 它, timeline Play 这个frame 的时候 doSomethingElse会执行,
- function first(){trace("Hello"}
- function second(){trace("How")}
- function third(){trace("ARE")}
- function forth(){trace("YOU")}
- function etc(){trace("???")}
- function main() {
- first();
- second();
- third();
- forth();
- etc();
- }
- //now call main function, and main function will call first() second(), third(), forth(), etc()
- main();
复制代码
至于 preloader, 你可以把time停在frame one 然后给指示 load完后去 frame 2, frame 2就include 所有要'继续' 性的 AS. |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|