as3 内置组件 1
2009年10月14日
1,改变所有按钮的样式:
//加载样式管理器
import fl.managers.StyleManager;
//定义文本格式对象
var tf:TextFormat = new TextFormat();
tf.size = 12; //字号,单位是像素
//改变按钮文本格式
StyleManager.setComponentStyle(Button, "textFormat", tf); //改变所有按钮样式 //改变所有标签样式参考以下语句:
StyleManager.setComponentStyle(Label, "textFormat", tf); 2,改变某一个按钮的样式:
aButton.setStyle("textFormat", tf);
import fl.managers.StyleManager;
var mytime:Number = 500;
var timer:Timer = new Timer(1,mytime);
var tf:TextFormat = new TextFormat();
tf.font ="宋体";
tf.size = 12;
mc.label = "清除";
mc.setStyle("textFormat", tf);
infor.width = 400;
infor.height = 300;
infor.setStyle("textFormat", tf);
var URLString:String = "http://www.17173.com";
var _URLRequest:URLRequest = new URLRequest(URLString);
var _URLloader:URLLoader = new URLLoader();
_URLloader.load(_URLRequest);
_URLloader.addEventListener(Event.COMPLETE,getop);
_URLloader.addEventListener(ProgressEvent.PROGRESS, progressHandler);
mc.addEventListener(MouseEvent.CLICK,clears);
function getop(event:Event){
timer.start();
}
timer.addEventListener(TimerEvent.TIMER_COMPLETE,timerEnd);
timer.addEventListener(TimerEvent.TIMER, timerHandler);
function timerHandler(event:TimerEvent){
var n = event.target.currentCount;
if(mytime - n !=0){
infor.text = String(mytime - n);
}
else{
}
}
function timerEnd(event:TimerEvent){
infor.text = String(_URLloader.data);
}
function clears(event:Event){
infor.text = "";
}
function progressHandler(event:ProgressEvent){
infor.text = String((int(_URLloader.bytesLoaded / _URLloader.bytesTotal) *100)+"%");
}
修改ListSkin,然后设置
StyleManager.setComponentStyle(List,"contentPadding", 1);
就这么简单。。。。我居然网上找了N天死活找不到解决办法,无语了,还是被自己“研究”了出来
Flex实时加载Skin
转载自http://hi.baidu.com/ming871/blog ... 2979d5d439c916.html
Flex实时加载Skin2008-08-13 21:36一篇翻译的文章,来自 The Kiwi Project ,这种方法很有用,但是唯一的问题就是,在加载皮肤的过程中,用户等待的问题。如果皮肤文件比较大,没有加载上来之前,程序可以说是无反应的,这样需要我们以某种方式提醒用户当前程序的工作。
实时加载 Flex 皮肤
目前,有很多关于如何在你的 Flex 程序中绘制皮肤的资源。
概述:Flex 支持两种绘制皮肤的方法:贴图和编程。贴图皮肤是在Flash、Photoshop、Firework等软件中创建皮肤资源图像,然后将他们导入(embed)到 Flex 程序中;编程皮肤是建立一个通过程序定义一个控件皮肤的 ActionScript 类。你可能猜到,贴图皮肤比较简单,编程皮肤可以实现更加丰富的效果。
这两个方法都有一个共同的缺点是,皮肤资源(对于贴图来说是 SWF/PNG/GIF 等文件,对于编程来说是那个 AS 类)必须在程序编译时就被包括。怎么改进呢?在这篇文章中我将演示一个如何实时加载贴图皮肤的巧妙方法。
为了使这个例子尽可能的简单,我仅建立一个只有一个按钮的 Flex 程序,这个按钮的皮肤是动态添加的。本程序将实时取得一个皮肤 SWF 文件,加载皮肤,然后把它们应用到按钮上。
第一步:为皮肤资源建立一个外壳 SWF
目的,有了这个外壳 SWF,我的 Flex 程序就可以实时加载皮肤中适当的资源
package
{
import flash.display.Sprite;
public class Wrapper extends Sprite
{
[Embed(source="flex_skins.swf",symbol="RadioButton_upIcon")]
public var rbUpSkin: Class;
[Embed(source="flex_skins.swf",symbol="RadioButton_downIcon")]
public var rbDownSkin: Class;
[Embed(source="flex_skins.swf",symbol="RadioButton_disabledIcon")]
public var rbDisabledSkin: Class;
[Embed(source="flex_skins.swf",symbol="RadioButton_overIcon")]
public var rbOverSkin: Class;
}
}
译者注:上面代码需要用 mxmlc 编译,不用使用 Flex Builder 去建项目。
第二步:将这个外壳 SWF 放到服务器上
Flex 程序需要从某个地方加载皮肤呀。
第三步:在 Flex 程序中使用 Loader 加载外壳 SWF
我建了一个比较实用的类 ClassLoader 来加载 SWF 文件,并且将其转化为类。以下是一些关键行:
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
...
request = new URLRequest(swfLib);
var contextLoaderContext = new LoaderContext();
context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
loader.load(request, context);
第四步:从加载的 SWF 中生成类,然后实例化
var wrapperClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class;
var wrapper:Object = new wrapperClass();
第五步:利用 setStyle 应用皮肤
这个很简单了。
StyleManager.getStyleDeclaration("Button").setStyle("upSkin", wrapper.rbUpSkin);
StyleManager.getStyleDeclaration("Button").setStyle("downSkin", wrapper.rbDownSkin);
StyleManager.getStyleDeclaration("Button").setStyle("disabledSkin", wrapper.rbDisabledSkin);
StyleManager.getStyleDeclaration("Button").setStyle("overSkin", wrapper.rbOverSkin);
第六步:运行程序
那么为什么要这么做呢?动态的皮肤提供给你一个难以置信而格外有力的功能:你可以让你的用户在你的程序上使用他们自己的皮肤。想象一下一个像 Winamp 的 Flex Mp3 播放器。开发人员并不需要为程序建立一个皮肤库,任何人都可以发布一个 UI 通过设置皮肤 SWF (可能在一个配置窗口中)让用户选择任一在社区中提供的皮肤。同样重要的,开发者也有能力来控制哪个皮肤可以被替换,哪个皮肤只能使用原来的皮肤(仅仅对相应的控件调用 setStyle 即可)。最后,将皮肤放到程序的外面,可以有效的保持程序的体积不会太大,肯定要比包含皮肤时要小。
发表评论
-
away3d 引擎更新
2012-01-20 01:48 513away3d 引擎更新 2010年09月07日 今天无意 ... -
7yue 介绍全新Flash 3D API
2012-01-20 01:48 5677yue 介绍全新Flash 3D API 2011年01月 ... -
FLEX 开发领域你知多少?
2012-01-20 01:48 525FLEX 开发领域你知多少? ... -
使用 lookAt()时注意记录原始状态originalM=Mtrix3D.clone(3d.transform)
2012-01-20 01:48 804使用 lookAt()时注意记录原始状态originalM=M ... -
取caurina 舍gs --TweenLite
2012-01-20 01:48 773取caurina 舍gs --TweenLite 2010年 ... -
论小学作文教学生活化
2012-01-19 09:36 606论小学作文教学生活化 2011年03月28日 论小学作文 ... -
小学生雷人造句、作文【太有才了】
2012-01-19 09:35 1099小学生雷人造句、作文 ... -
小学生作文训练
2012-01-19 09:35 573小学生作文训练 2011年0 ... -
小学高年级作文教学浅议
2012-01-19 09:35 684小学高年级作文教学浅议 2011年09月17日 作文是最 ... -
关于小学作文教学之我见
2012-01-19 09:35 585关于小学作文教学之我 ... -
2011-12-14
2012-01-17 02:10 6172011-12-14 2011年12月14日 (32)设 ... -
2011年3月计算机等级考试二级C语言笔试:文字版(2)
2012-01-17 02:10 7742011年3月计算机等级考试二级C语言笔试:文字版(2) 2 ... -
2011年3月计算机等级考试二级C语言笔试:2
2012-01-17 02:10 6992011年3月计算机等级考试二级C语言笔试:2 2011年0 ... -
2011-7-27
2012-01-17 02:10 6212011-7-27 2011年07月27日 ... -
6.14.10.6999 (20090814) - ATI Mobility Radeon HD 4500 Series
2012-01-17 02:10 7946.14.10.6999 (20090814) - ATI M ... -
flex 装载多个module出现的空对象引用问题
2012-01-15 21:43 670flex 装载多个module出现的空对象引用问题 2009 ... -
Error: No class registered for interface mx
2012-01-15 21:42 764Error: No class registered for ... -
反射 swf里的类
2012-01-15 21:42 583反射 swf里的类 2009年11月02日 用反射的方 ... -
Module应用时,TypeError: Error #1034: 强制转换类型失败
2012-01-15 21:42 892Module应用时,TypeError: Error #103 ...
相关推荐
AS3批量下载组件,如BulkLoader,是ActionScript 3(AS3)开发中的一个工具,主要用于优化和加速网络资源的加载,特别是当需要下载大量图片、音频或视频文件时。这个组件允许开发者一次性处理多个文件,提高了用户...
1. **事件驱动编程**:AS3是一个基于事件的编程模型,聊天应用中的各种交互如用户输入、消息发送和接收都通过事件来触发。例如,`KeyboardEvent.KEY_DOWN`用于监听键盘按键,`Event.ENTER_FRAME`用于每一帧更新界面...
1. **AS3的基础概念** - **类与对象**:AS3是完全的面向对象语言,一切皆为对象。类是创建对象的蓝图,而对象则是类的实例。 - **命名空间**:AS3引入了命名空间的概念,用于避免命名冲突,更好地组织代码。 - **...
AS3-DisplayEffect组件是基于ActionScript 3.0(AS3)开发的一款显示效果工具,主要用于增强Flash Player中的图形渲染。这篇博文由Hereson在iteye博客平台上分享,探讨了如何使用这个组件来创建和应用各种动态视觉...
1. **组件库**:使用内置的组件库,如Button、TextInput、MovieClip等,将这些拖放到舞台上以创建UI元素。 2. **实例命名**:为舞台上的每个对象分配唯一的实例名称,这使得在AS3代码中引用它们变得简单。 3. **动作...
1. **AS3基础知识**:AS3是ActionScript的第三个主要版本,引入了许多改进,包括类型检查、类的严格模式、命名空间以及性能提升。它遵循ECMAScript 4标准,为开发人员提供了强大的面向对象编程能力。 2. **MP3解码*...
4. **动作脚本组件** - AS3引入了一系列预定义的UI组件,如按钮、文本字段等,这些组件可以帮助开发者快速构建用户界面。 5. **显示列表** - 显示列表是AS3中管理舞台上可视对象的层次结构。了解如何操作这个层次...
在AS3中,你可以使用内置的UIComponent类作为基础来构建自定义的滚动条组件。UIComponent提供了一个灵活的框架,可以添加属性、方法和事件监听器来定制你需要的功能。 创建滚动条时,需要定义滑块的位置和大小,这...
1. **DateUtil**: 提供了比AS3内置`Date`类更强大的日期和时间处理功能,比如ISO格式的日期转换和日期计算。 2. **MD5**: 实现了MD5哈希算法,可以用于数据校验或创建唯一的标识符。 3. **SHA-1/SHA-256**: 提供了...
1. **ActionScript 3.0基础**:AS3基于ECMAScript 4规范,引入了类、接口、包等面向对象的概念,使得代码组织更加有序。基础语法包括变量声明(var)、数据类型(Number、String、Boolean等)、运算符、流程控制(if...
9. **组件使用和自定义组件**:AS3中有许多内置组件,如Button、TextInput等,可以快速搭建用户界面。同时,了解如何自定义组件,可以满足个性化需求。 10. **性能优化**:了解如何避免内存泄漏、减少不必要的计算...
3. **物理模拟**:为了模拟真实的翻页效果,开发者可能需要用到物理引擎如`Box2D`,尽管AS3本身并不包含内置的物理引擎。通过对角力、摩擦力等物理因素的计算,使得翻页过程中页面的摆动、折叠等动作更符合物理规律...
在提供的压缩包中,`json.as`可能是实现上述功能的AS3源代码,`json.fla`是Flash项目文件,`json.swf`是编译后的可执行SWF文件,而`com`可能包含额外的类库或组件。通过这些文件,你可以直接查看和运行示例,理解AS3...
在AS3中,由于原生的Flash Player API并未提供内置的压缩功能,因此需要借助第三方库来实现这些功能。 AS3 ZIP库,正如其名,用于处理ZIP文件。ZIP是一种广泛使用的文件归档格式,可以将多个文件或目录打包成一个...
AS3中,滚动条可以通过Flash的内置UI组件SystemManager或独立的UIComponent类来创建。 在AS3中,你可以使用Sprite或MovieClip类来构建自定义的滚动条组件。这些类提供了基本的图形绘制和事件处理功能。以下是一些...
12. **组件和UI**:AS3包含一组丰富的内置组件,如Button、ComboBox等,可以快速构建用户界面。 13. **调试工具**:Flash Professional CS3附带的ActionScript调试器和Flash Player的Debug版本,帮助开发者查找和...
1. **面向对象编程**:AS3完全采用了面向对象编程(OOP)的概念,包括类、对象、继承、封装和多态性。开发者可以通过文档了解如何定义类、创建对象实例,以及如何利用继承和接口来设计复杂系统。 2. **事件驱动编程...
3. **Flash组件和舞台**:在Flash环境中,开发者可以使用各种内置组件(如按钮、文本输入框等)来构建用户界面,并通过时间轴和帧的概念控制动画和交互。 4. **事件处理**:AS3中的事件驱动模型允许开发者响应用户...
AS3内置了XML和JSON类,可以方便地解析这两种格式的数据。将数据解构为对象,如`WeatherData`,包含城市、温度、湿度、风速等属性。 3. 用户界面:使用Flash的DisplayObject体系结构创建图形元素,如图标表示天气...