- 浏览: 75592 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
兩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 1137BlazeDS Test Drive里面示例了主要的功能: ... -
Flex与Severlet(Jsp)通信传递中文参数乱码问题的解决
2013-02-19 15:51 688Java代码 var url ... -
Java与Flex建立Socket连接
2013-02-17 23:42 860Socket与其他的通信技术最大的不同是Socket连接在数 ... -
Ubuntu上搭建Flex4的开发环境
2013-02-15 20:58 1149原文出自:http://www.brighthub.com/ ... -
flex web应用程序生成自定义右键菜单
2013-01-25 17:13 1073屏蔽浏览器的鼠标右键,同时监听鼠标右键,当触发右键点击事件的 ... -
Flex通过HTTPService与servlet通信
2013-01-16 15:03 997Flex通过HTTPService与servlet通信 ... -
flex摄像头连接视频录制
2012-12-25 23:55 1622Flex提供了3个类实 ... -
flash builder 4.7 install for windows 8
2012-12-23 01:02 1266之前在自己的win8上集成fb到myecl ... -
flex load map
2012-12-21 15:48 931ArcGIS Server flex加载google地图 ... -
Flex与JavaScript交互调用函数
2012-12-21 09:43 844一、在JavaScript中调用Flex方法 在 Flex ... -
关于flex不能移除监听器总结
2012-12-20 00:07 1856首先看我从网上转载了一篇文章: <!--------- ... -
Flex中TitleWindow关闭按钮CloseButton的定制问题
2012-11-29 16:01 1182问题:TitleWindow的关闭 ... -
flex学习之联动下拉框实现
2012-11-27 12:55 1278Java代码 TbArea.java ... -
flex中弹出确认对话框
2012-11-22 16:30 822Xml代码 <?xml versi ... -
Flex(ActionScript3)解析XML
2012-11-20 17:21 648正文: 对于如下的一个XML文档,在flash中应该怎么读呢 ... -
MessageBroker /amf
2012-11-20 10:58 885MessageBroker 我们称他为信息经纪人,它职责就是把 ... -
Flex3 组件的定位和布局
2012-11-18 19:22 759Flex 组件的定位和布局 大多数 Flex 容器使用预定义 ... -
Flex异步令牌AsyncToken的用法介绍
2012-11-15 09:28 689什么是AsyncToken?官方文档是这样描述的:" ... -
Flex布局简介
2012-11-14 14:38 800★设置组件布局 对于所有的继承自UIComponent的组件包 ... -
Flex编程注意之直接获取某个组件的对象(this[]用法)
2012-11-14 13:09 637有这样一个需求:假如你new了一百次Button,同时这 ...
相关推荐
flex使用Socket与C++服务器交互,服务器可以实现多线程,解决安全沙箱问题。
flex的socket客户端连接java多线程socket服务端demo
Flex中不用ScrollBar实现滚动效果
flex中文帮助flex中文帮助flex中文帮助flex中文帮助
动态实现多文件上传,基于flex技术,可以动态监控上传进度。
完美解决Flex3 中 实现 图文混排 。
简洁的实现了在flex中实现背景音乐的功能
flex advancedDataGrid 中如何实现带checkbox的树
完美解决 Flex 4 中 实现 图文混排
NULL 博文链接:https://fzlihui.iteye.com/blog/953299
flex实现 ComboBox中下拉checkbox 经测试好用,还有可移动面板,和可改大小面板实例
flex中文帮助文档flex中文帮助文档
Flex与Java实现通信,Flex与Java实现通信,Flex与Java实现通信
简洁实现flex中条形统计图,更加美观,适合初学者学习
flex中默认的tab都是一行的,要使用多行的tab,可以参考这个例子的代码。
在FLEX4中开发带有过滤功能的DATAGRID组件
flex 多线程 ,flex 多线程
在flex中在同一界面实现切换效果,代码简单,易懂。
Flex 中Tab(选项卡的实现),包含代码和完成后的样子,主要是用选项卡在一个里面添加然后跳转到另一个选项卡中显示出来
主要练习应用flex布局,模拟实现静态知乎首页。 包含知识点:字体图标,伪类,flex布局等模拟实现静态知乎首页