`
hgfghe3
  • 浏览: 52597 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

aw由Flash中的异步、同步想到setInterval的一些用法。

阅读更多

今天去了一趟书店,看了很多Flash的书,那叫一个[1b]垃圾[/1b]。倒不是说写得不好,而是有些地方明显回避。其实骂“垃圾”主要是因为看到一些立着“难点”、“高级”牌坊的书。一遇到真正麻烦的情况,就撤了。买“突破难点”就是为了了解难点如何突破嘛,那些众人皆知的事情本应该是另外相关入门书的任务。比如
setInterval
,几乎没看到一本负责任讲得深入的。
当然,我并不是通过“贬低”这些不负责任的作者们来提高自己,在Flash中控制异步同步并非我的长处,所以肯定会存在一些问题!我也希望希望大家多多提出自己的评论、想法。
言归正传:其实异步、同步的问题在Flash开发中,似乎并没有引起太多人的关注。一来设计师们认为 loadMovie 这样的东西封装得很好了,根本不需要深入考虑其细节,即便是更加复杂一点的工程,用
MovieClipLoader
来运筹帷幄,似乎在异步、同步的问题上也没有遇到什么麻烦。
异步、同步,并不能简单说哪个好,哪个不好。要是站在易用性、用户体验的角度来说,异步当然更好。每一次的操作不必等待其他请求就能直接给予用户反馈。当然,也不能完全异步操作。细节到一个集成电路的运作,大到使用某应用程序完成某一项工作,都不可能每次都在上一件任务都不做完的情况下就匆匆执行用户的下一个指令。特别是Windows图形界面的出现、网络通信工具的出现以及AJAX的大张旗鼓的宣传,人们似乎已经忘记了计算机内核最稳定以及最基本的同步运算原理。
当然,千万不要认为我又是在这里鼓吹同步如何好、如何稳定。只是最近做到的一些项目中对异步造成的麻烦有所感叹而已。要是只有同步,估计现在计算机只能计算加减乘除了。我只是想说,异步同步均有其使命,关键看人如何使用了。
不扯远了……说到Flash中的异步同步,不得不提及两条非常非常重要的语句:
loadMovie、
setInterval
关于具体的使用,不想多说,到处都有,我这里也有一些
教程
中有涉及。仅仅想啰嗦一下,不要用loadMovie了,改用MovieClipLoader(当然,无法兼容Player6.0以下)
不妨先结合一个具体的例子来说明一下setInterval和loadMovie(MovieClipLoader)中,有关同步异步的一些概念。
首先在同级目录下,建立两个fla文件,分别命名为loader.fla, loadee.fla
仅在第一帧分别写下(理解成伪码吧,毕竟只是为了帮助大家理解空写出的代码:我没有编译,不敢保证直接拿过去就没有问题,但是主要思想都是很清楚地。)
//这里是loader,用于加载loadee.swf的源码,以及自身设定的一些交互、流程,通过trace语句来进行试验
var myMCL:MovieClipLoader = new MovieClipLoader ();
var l:Object = new Object ();
l.onLoadStart = function (t)
{
trace ("start@: " + t);
};
l.onLoadComplete = function (t)
{
exeThis ();
};
l.onLoadInit = function (t)
{
trace (loadee); //结论1
};
myMCL.addListener (l);
myMCL.loadClip ("loadee.swf", _root.createEmptyMovieClip ("temp_mc", _root.getNextHighestDepth ()));
//loadMovie ("loadee.swf", _root.createEmptyMovieClip ("temp_mc", _root.getNextHighestDepth ()));
function exeThis ()
{
var intervalObj:Object = new Object ();
intervalObj.someInterval = setInterval (func1, 100, 1);
var intervalAnothoer:Number = setInterval (func2, 100, 1);
function func1 (q)
{
trace ("==Loader==Func1==");
trace (intervalObj.someInterval);
}
function func2 (q)
{
trace ("==Loader==Func2==");
trace (intervalAnothoer);
}
}
bb_btn.onRelease = function ()
{
bb = setInterval (exeThis, 1000); //setInterval中套setInterval
trace (bb);
};
stop ();
//这里是loadee.fla,发布成loadee.swf以供loader.swf加载。
_global.loadee = true; // 结论1
var _intervalObj:Object = new Object (); // 结论2
_intervalObj.someInterval = setInterval (func1, 100, 1);
var _intervalAnothoer:Number = setInterval (func2, 100, 1);
function func1 (q)
{
trace("==Loadee==Func1==");
trace(_intervalObj.someInterval);
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/348.html
分享到:
评论

相关推荐

    window.clearInterval与window.setInterval的用法.

    本文将详细介绍这两个函数的使用方法以及应用场景。 #### 1. `window.setInterval` 的用法 `window.setInterval`函数用于设置一个定时器,该定时器每隔一段时间就会执行指定的函数或代码片段。其基本语法结构为: ...

    setInterval 引起的性能问题

    在JavaScript编程中,`setInterval`是一个非常常用的函数,它用于定期执行某个任务。然而,如果不正确地使用,`setInterval`可能导致各种性能问题。这篇博客文章“setInterval引起的性能问题”探讨了这些问题以及...

    setInterval阻塞解决方案完整代码

    前端开发中,我们会会经常使用定时器setinterval setTimeout等,但当我们离开页面时,定时器会被阻塞,导致我们再回到页面的时候定时任务会混乱运行,为些我的解决方案写了个简单demo,希望对你有所帮助

    setInterval

    在这篇博客中,我们将深入探讨`setInterval`的工作原理、常见用法以及需要注意的陷阱。 首先,我们来看`setInterval`的基本语法: ```javascript setInterval(function, delay); ``` 其中,`function`参数是要...

    关于setInterval定时器的使用示例

    下面我们将深入探讨`setInterval`的工作原理、使用方法以及需要注意的一些细节。 ### `setInterval`函数简介 `setInterval`接收两个参数:一个是要执行的函数或字符串(代表要执行的代码),另一个是执行间隔的...

    Javascript中, setTimeout() 和 setInterval() 的方法

    在JavaScript编程中,`setTimeout()`和`setInterval()`是两个非常关键的函数,它们用于实现异步编程,特别是在处理动画、定时任务或者延迟执行代码时不可或缺。这两个函数都是全局对象`window`的方法,它们的区别...

    用于定时执行异步任务,调用方式类似原生 setInterval-setPromiseInterval.zip

    `setInterval`函数是JavaScript中用于周期性执行某段代码的原生方法,但它不支持Promise,这意味着在异步操作中使用`setInterval`时,我们往往需要嵌套回调函数,这可能导致代码结构混乱,难以维护。`...

    关于JS定时器(setTimeout setInterval)定时不准问题1

    setTimeout和setInterval的基本用法 setTimeout函数用于在指定的延迟时间后执行一个函数,返回一个惟一的ID,可以通过该ID取消定时器。setInterval函数用于在指定的延迟时间后循环执行一个函数,直到它被取消。 ...

    异步处理代码

    使用`setTimeout`、`setInterval`、`fetch`、`async/await`等函数可以实现异步操作。例如,`async/await`语法使得异步代码更接近同步的写法,提高了代码的可读性和可维护性。 Python中,可以使用`asyncio`库进行...

    JavaScript中从setTimeout与setInterval到AJAX异步

    在JavaScript中,setTimeout和setInterval是两种常见的定时器函数,用于实现异步操作。JavaScript作为单线程语言,其主线程的执行是顺序的,但是在处理某些操作,如延时任务或者周期任务时,会借助事件循环机制和回...

    深入理解JavaScript编程中的同步与异步机制

    在深入理解JavaScript编程的过程中,同步与异步机制是核心概念之一,它们影响着程序的执行流程和性能。随着互联网技术的发展,JavaScript不再局限于浏览器端,通过Node.js等技术的应用,JavaScript的异步编程能力...

    js中SetInterval与setTimeout用法

    JS 中 SetInterval 与 setTimeout 用法 在 JavaScript 中,SetInterval 和 setTimeout 是两种常用的定时器函数,用于实现延迟执行或重复执行某些操作。下面我们将详细讲解这两种函数的区别和用法。 SetTimeout ...

    asynchronous timer_异步定时器_

    2. **定时器实现**:异步定时器的实现方式多种多样,常见的有计时器类库(如POSIX的`timer_create`),或者使用事件循环(如在Node.js中的`setInterval`)。在多线程环境中,可以使用线程池或单独线程,线程池可以更...

    在vue中使用setInterval的方法示例

    本文主要介绍了在Vue项目中使用JavaScript的setInterval函数的方法,以及如何处理Vue中视图更新不触发的问题。通过一个实际案例,详细说明了如何在Vue中通过setInterval定时器动态更新数据,并成功地将随机数反映在...

    js中SetInterval与setTimeout用法.pdf

    JavaScript 中的 SetInterval 与 setTimeout 用法 在 JavaScript 中,SetInterval 和 setTimeout 是两种常用的定时器函数,用于实现延迟执行或重复执行某些操作。本文将详细介绍这两种函数的用法和区别。 ...

    javascript之setTimeOut和setInterval的用法

    使用SetInterval和设定延时函数setTimeout 很类似。setTimeout 运用在延迟一段时间,再进行某项操作。

    简单谈谈JavaScript的同步与异步

    JavaScript同步与异步的理解与实现是前端开发中极为重要的一个概念。在深入探讨之前,我们首先需要了解JavaScript为何是单线程的语言,这与其在浏览器中的主要用途有直接关系。 JavaScript的单线程与它的用途相关,...

    set-interval-async:setInterval的现代版本,用于Promise和异步功能

    setIntervalAsync可在Node.js和浏览器中使用,并提供相同的功能熟悉的接口,如setInterval用于异步函数,同时防止时间重叠导致多次执行。 入门 Node.js 您可以使用npm安装setIntervalAsync : npm install set-...

    Javascript中setTimeOut和setInterval的定时器用法

    Javascript的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等。但它们的应用是有区别的。 ...

    基于Javascript的异步编程分析.pdf

    在JavaScript中,有很多通过回调函数来执行的异步调用,例如setTimeout()或者setInterval()。 ```javascript setTimeout(function() { console.log("this will be executed after 1 second!"); }, 1000); ``` 在上...

Global site tag (gtag.js) - Google Analytics