- 浏览: 78750 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
兩ting:
说实话,我没有装成功。。。
Ubuntu上搭建Flex4的开发环境 -
chenzhou123520:
写得很好,赞一个,不过指出一个小错误引用表 2. IoSess ...
Mina服务器开发入门基础,实例讲解 -
jinx3166:
受益良多!
关于flex不能移除监听器总结 -
兩ting:
Flex太强大了,不过会的人不是很多.精通的人就更少了
Ubuntu上搭建Flex4的开发环境 -
liminjun:
你们平时开发也是用Ubuntu吗?Flex做企业项目还是有很大 ...
Ubuntu上搭建Flex4的开发环境
Flex中多线程的实现
最近在网上看到一个工具类可以提供flex中多线程的支持,AsyncThreading,googleCode地址 (【AsyncThreading_2[1].1.zip】下载地址),详细文档可以去googleCode上看
下面总结一下利用这个工具类来实现一个抽奖机的demo。
首先我们要编写一个自定义线程类,继承自AbstractAsyncThread并且实现IAsyncThreadResponder接口,
AbstractAsyncThread这个类可以控制线程的级别:
public const RUN_LEVEL_REAL_TIME:int = 1; public const RUN_LEVEL_HIGH:int = 3; public const RUN_LEVEL_ABOVE_NORMAL:int = 6: public const RUN_LEVEL_NORMAL:int = 8; public const RUN_LEVEL_BELOW_NORMAL:int = 12: public const RUN_LEVEL_LOW:int = 24;
IAsyncThreadResponder这个接口提供了一个线程启动后调用的方法
function execute():void;
自定义线程对象类代码如下:
package threads { import cn.ningyu.utils.Random; import com.symantec.premiumServices.asyncThreading.abstract.AbstractAsyncThread; import com.symantec.premiumServices.asyncThreading.interfaces.IAsyncThreadResponder; import mx.controls.Label; public class WorkBee extends AbstractAsyncThread implements IAsyncThreadResponder { private var _lab:Label; public function WorkBee(lab:Label) { _lab = lab; super(); super.priority = super.RUN_LEVEL_REAL_TIME; } public function execute():void { var random:Random = Random.getInstance(); random.digit = 1; random.radix = Random.NUMBER; _lab.text = random.createRandom(); } } }
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[ import threads.WorkBee; import com.symantec.premiumServices.asyncThreading.AsyncThreadingManager; import mx.collections.ArrayCollection; private var threadList:ArrayCollection = new ArrayCollection(); private function init():void { threadList = new ArrayCollection(); for(var i:int=0;i<7;i++) { var workBee:WorkBee; switch(i) { case 0: workBee = new WorkBee(lab1); break; case 1: workBee = new WorkBee(lab2); break; case 2: workBee = new WorkBee(lab3); break; case 3: workBee = new WorkBee(lab4); break; case 4: workBee = new WorkBee(lab5); break; case 5: workBee = new WorkBee(lab6); break; case 6: workBee = new WorkBee(lab7); workBee.wake() break; } threadList.addItem(workBee); } } private function onClick():void { if(btn.label == "开始抽奖") { for(var i:int=0;i<7;i++) { if(threadList[i].sleeping) { threadList[i].wake(); } else { threadList[i].start(); } } btn.label = "停止抽奖"; } else if(btn.label == "停止抽奖") { for(var i:int=0;i<7;i++) { threadList[i].sleep(); } btn.label = "开始抽奖"; } } ]]> </mx:Script> <mx:FormItem verticalCenter="0" horizontalCenter="0" direction="horizontal" fontSize="50" fontWeight="bold"> <mx:Label id="lab1"/> <mx:Label id="lab2"/> <mx:Label id="lab3"/> <mx:Label id="lab4"/> <mx:Label id="lab5"/> <mx:Label id="lab6"/> <mx:Label id="lab7"/> <mx:Button id="btn" label="开始抽奖" click="onClick()"/> </mx:FormItem> </mx:Application>
注意的点:
线程方法:start()启动线程
sleep()休眠线程
sleeping线程是否处在休眠状态
wake()重新激活线程
kill()杀掉线程
async-threading
还提供AsyncThreadingManager来管理所有的进程
提供的方法:
shutDown()停掉所有的线程
killAllThreads()杀掉所有的线程
还支持线程之间通信,利用sendMessageToThreads(name:String,body:Object):Boolean
将其中的代码移植到 Flex4的项目中 在创建线程的时候 报错
TypeError: Error #1009: Cannot access a property or method of a null object reference.
解决办法:
下载 AsyncThreading_2.1 源码到本地,修改 com.symantec.premiumServices.asyncThreading.handlers.FPSObserverHandler 中的代码 如下:
import mx.core.Application;
修改为:
import spark.components.Application;
private var _appRef:Application = Application.applicationas Application;
修改为:
private var _appRef:Application = FlexGlobals.topLevelApplication as Application;
OK 完成 错误解决!
发表评论
-
BlazeDS的功能原理及配置实例
2013-05-01 23:26 1186BlazeDS Test Drive里面示例了主要的功能: ... -
Flex与Severlet(Jsp)通信传递中文参数乱码问题的解决
2013-02-19 15:51 726Java代码 var url ... -
Java与Flex建立Socket连接
2013-02-17 23:42 897Socket与其他的通信技术最大的不同是Socket连接在数 ... -
Ubuntu上搭建Flex4的开发环境
2013-02-15 20:58 1242原文出自:http://www.brighthub.com/ ... -
flex web应用程序生成自定义右键菜单
2013-01-25 17:13 1108屏蔽浏览器的鼠标右键,同时监听鼠标右键,当触发右键点击事件的 ... -
Flex通过HTTPService与servlet通信
2013-01-16 15:03 1036Flex通过HTTPService与servlet通信 ... -
flex摄像头连接视频录制
2012-12-25 23:55 1659Flex提供了3个类实 ... -
flash builder 4.7 install for windows 8
2012-12-23 01:02 1340之前在自己的win8上集成fb到myecl ... -
flex load map
2012-12-21 15:48 1017ArcGIS Server flex加载google地图 ... -
Flex与JavaScript交互调用函数
2012-12-21 09:43 895一、在JavaScript中调用Flex方法 在 Flex ... -
关于flex不能移除监听器总结
2012-12-20 00:07 1926首先看我从网上转载了一篇文章: <!--------- ... -
Flex中TitleWindow关闭按钮CloseButton的定制问题
2012-11-29 16:01 1211问题:TitleWindow的关闭 ... -
flex学习之联动下拉框实现
2012-11-27 12:55 1322Java代码 TbArea.java ... -
flex中弹出确认对话框
2012-11-22 16:30 863Xml代码 <?xml versi ... -
Flex(ActionScript3)解析XML
2012-11-20 17:21 713正文: 对于如下的一个XML文档,在flash中应该怎么读呢 ... -
MessageBroker /amf
2012-11-20 10:58 946MessageBroker 我们称他为信息经纪人,它职责就是把 ... -
Flex3 组件的定位和布局
2012-11-18 19:22 804Flex 组件的定位和布局 大多数 Flex 容器使用预定义 ... -
Flex异步令牌AsyncToken的用法介绍
2012-11-15 09:28 738什么是AsyncToken?官方文档是这样描述的:" ... -
Flex布局简介
2012-11-14 14:38 833★设置组件布局 对于所有的继承自UIComponent的组件包 ... -
Flex编程注意之直接获取某个组件的对象(this[]用法)
2012-11-14 13:09 670有这样一个需求:假如你new了一百次Button,同时这 ...
相关推荐
在Flex中,我们可以使用AS3的Socket类来建立连接、发送和接收数据。在C++服务器端,可以通过如boost.asio或标准库中的`<thread>`和`<socket>`头文件来实现相应的Socket通信功能。 多线程是服务器端编程的重要技术,...
在Flex中,由于其默认的单线程模型,处理大量计算或I/O密集型任务可能会阻塞用户界面,因此引入多线程技术显得尤为重要。 首先,我们要理解Flex的默认执行模型。Flex应用程序基于Flash Player或Adobe AIR运行,它们...
在Flex中,我们可以使用`flash.net.Socket`类来创建和管理Socket连接。这个类提供了打开、关闭连接,以及发送和接收数据的方法。 Java的Socket服务端则利用了Java的`java.net.ServerSocket`和`java.net.Socket`类。...
在Flex中实现多文件上传,通常涉及到ActionScript编程、组件使用以及与服务器端的交互。下面将详细介绍如何使用Flex来实现这个功能。 一、Flex中的文件选择组件 在Flex中,我们可以使用`FileReference`类来处理文件...
Flex中不用ScrollBar实现滚动效果
完美解决Flex3 中 实现 图文混排 。
简洁的实现了在flex中实现背景音乐的功能
10. **Flex的应用场景**:Flex常用于企业级应用、数据可视化、在线教育、游戏开发等多个领域,因其丰富的交互性和高性能而受到青睐。 这个“Flex中文教程中文文档”将深入讲解以上各个知识点,对于初学者来说,是一...
首先,我们需要了解Flex中的容器和组件。容器是Flex应用程序的基础,它们可以包含一个或多个组件,如按钮、文本输入等。在Flex中,我们可以使用MX容器或Spark容器来创建自定义布局。对于边框和标题的需求,MX容器中...
在Flex 4中实现图文混排是一个常见的需求,特别是在创建用户界面或开发富互联网应用程序时。Flex 4,也称为Spark架构,提供了更强大的布局...在具体实践中,不断探索和实验,你会发现更多实现图文混排的方法和技巧。
在Flex中,多线程是一个关键概念,尤其对于处理复杂计算或长时间运行的任务时,多线程能够提高应用程序的响应性和用户体验。 在Flex中,由于其运行在Flash Player或者Adobe AIR环境中,传统的多线程模型并不直接...
本文将探讨如何在Flex中实现TabBar标题过多时的解决方案。 首先,我们可以考虑动态调整TabBar的布局。在Flex中,TabBar组件支持两种布局方式:横向和纵向。当标题数量过多时,可以尝试将布局改为纵向,这样可以充分...
ActionScript 3.0则是Flex中的编程语言,提供了面向对象的编程能力,使得开发者可以实现复杂的业务逻辑。 二、Flex SDK与Flex Builder Flex SDK是Flex开发的基础,包含了编译器、库和命令行工具,允许开发者在任何...
4. **数据绑定**:Flex中的数据绑定是其强大特性之一,它允许UI组件的状态与应用程序数据自动同步。这大大简化了代码,提高了开发效率。 5. **事件驱动编程**:Flex应用程序是基于事件驱动的,用户操作或其他系统...
本文将深入探讨如何在Flex中的DataGrid组件中实现复选框的全选与取消全选功能,这对于数据操作和用户交互至关重要。 在Flex的DataGrid组件中,我们通常会遇到这样的需求:当用户需要对多条记录进行批量操作时,如...
Flex中的数据绑定机制允许将UI组件的属性直接绑定到应用程序的数据模型,当数据模型发生变化时,UI会自动更新,反之亦然,简化了界面和数据间的交互。 六、Flex事件模型 Flex事件模型基于观察者模式,事件是组件间...
在这个特定的场景中,"Flex实现的xmpp消息发送接收"是指使用Flex技术来实现在Android、iOS等移动设备以及IE浏览器上的即时通讯功能。 XMPP(Extensible Messaging and Presence Protocol)是一种开放标准的协议,...
简洁实现flex中条形统计图,更加美观,适合初学者学习