As3基础
tiangej
这个作者很懒,什么都没留下…
展开
-
Flex中的“Event.INIT”事件
Adobe官方语言参考是这么解释该事件的:http://livedocs.adobe.com/flex/3_cn/langref/ 在加载操作未完成时,Loader 对象的 contentLoaderInfo 属性的某些属性不可用。您可以获得某些属性,如 bytesLoaded、bytesTotal、url、loaderURL 和applicationDomain。当loaderI原创 2012-03-07 23:55:32 · 1799 阅读 · 0 评论 -
制作Slider组件的些许性能改善
代码是横向Slider组件的基本代码,注意onMouseMove函数部分。在计算Rectangle的时候,对于高度,可以计算,也可以设置为0。代码执行效果完全一样。由于少了一步的计算,对改善性能有些许贡献。package { import com.bit101.components.List; import flash.display.Sprite; import fla原创 2013-04-06 15:42:57 · 697 阅读 · 0 评论 -
Actionscript中 事件和监听器的默认参数的巧妙设计
松耦合的程序结构有很多好处,可以降低程序的复杂程度,提高灵活性(应对变化)。Actionscript中,事件机制是达到松耦合的常用手段之一。事件机制涉及到事件和事件监听器。在定义事件和事件监听器的时候,Actionscript设置了可省略的默认参数。事件: Event(type:String, bubbles:Boolean = false, canc原创 2013-04-07 23:38:43 · 1390 阅读 · 0 评论 -
Flex很可能会消失
作为开发网络应用的技术,Flex体系曾被技术者追捧,但是始终没有被市场广泛接受(使用)。Adobe宣布放弃Flex,一阵喧嚣过后,Flex似乎正在淡出技术者的视线。国内知名技术网站CSDN把Flex/Flash专题从主菜单上移除。Actionscript知名技术社区9ria.com中,Flex的帖子也是日趋减少。自2011年之后,Flex相关书籍的出版几乎没有。据国内某原创 2013-04-19 00:40:45 · 2010 阅读 · 1 评论 -
如何替代Flex?
Actionscript是一门特殊的语言。配合Flashplayer运行环境,能够带来非常优秀的视觉体验。我不知道还有那种开发语言能够如此轻松地创造出如此丰富多彩的UI界面。可以说,Actionscript是开发网络应用前端UI的最具创造性地语言。是唯一而不是之一。替代Flex的产品特质,最重要的一点就是轻巧,能够深度定制(修改)。如果用Flex替代品(用Actionscr原创 2013-04-19 00:58:48 · 3095 阅读 · 0 评论 -
轻薄UI组件设计思想:人算代替机算
前提思想:1. 为特定应用设计的UI外观,只有一组是最优的(其余都非最佳)2. 应用整体风格需要保持一致性,UI组件外观是相对不变的3. 所谓的“换肤”,绝大多数场合指的仅仅是颜色等的变换,不会产生结构性变化。比如换肤的结果是按钮变大了或纵向滚动条变宽了。在认同前提的条件下,为设计出轻薄的UI组件,可以选择放弃逻辑计算,而该用人算。比如在特定应用中,纵向滚动条被设计成宽原创 2013-05-02 23:52:34 · 1003 阅读 · 0 评论 -
滚动条设计:基本算法
以纵向滚动条为例:>>已知条件: 滚动条高度=h 最大值=max 最小值=min 翻页跨度=p>>基本算法 页数: pageCount = (max - min) / p 滑块高度: thumbH = h / pageCount原创 2013-05-03 19:58:05 · 2582 阅读 · 0 评论 -
UI组件:动态换肤原型
>>设计要点外部皮肤(swf)的动态加载 + swf中皮肤类的动态实例化(反射) + 事件广播机制 >>技术实现要点:皮肤swf的制作创建swc工程,然后对swc文件进行解压缩,得到library.swf,将其更名,以备使用。*该swf文件的特点是没有文档类(可执行程序入口),是纯粹的“功能类库”。 目前还没有找到可以直接生成该类型文件的IDE。 >>原型示原创 2013-09-17 12:58:06 · 868 阅读 · 0 评论 -
UI组件的两个源头
http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e3c.html 从Actionscript核心显示类图上可以看出,TextField比Sprite更接近根部,两者属于不同级别。因此UI组件的两个源头也有了理论基础。原创 2013-10-17 12:06:12 · 706 阅读 · 0 评论 -
AS3 类成员变量的初始化和构造函数的执行 谁先谁后?
有如下测试代码,运行Test,看看输出结果是什么? { public class Class1 { public var txt:String = "aaaaaaaaaaaaaaaaaa"; public function Class1() { trace(txt); } }} package{ public class Class2 extend原创 2013-10-25 11:32:33 · 1604 阅读 · 0 评论 -
TextField中的属性:text 与 htmlText
TextField用两种类似的属性展现文字:一类是text、textFormart的组合(略称为A),另一类是htmlText(略称为B) A能够实现的功能B都能实现。两者是互斥的,B的优先级高。如果设定了B,则忽略A。 使用时,根据不同的场合在AB中进行选择。原创 2013-12-31 14:19:15 · 2894 阅读 · 0 评论 -
使用Flex mxmlc编译命令选项,减小swc或swf的大小
debug=false 经过充分的测试后,可以通过设置该参数,有效地减小swc或swf的大小。我的例子中能够减小30%左右。原创 2014-01-07 11:27:11 · 1306 阅读 · 0 评论 -
无正文:UI库设计的核心是结构设计 + 消息机制设计
如题。原创 2014-01-09 08:57:45 · 699 阅读 · 0 评论 -
猜猜猜: Actionscript中宽高/坐标以0.05为步进值,很可能和打印有关
>>>>>关于0.05的坊间资料:http://riaoo.com/?p=2473===============================================前述:传闻说在flash里最小的长度单位不是像素,而是 Twips(缇)。二十分之一的像素称为Twips。如何证明?分析:在Flash里,可视对象的坐标(如 x 和 y 属性)是一个 Number 类型的变量原创 2014-04-14 17:35:12 · 1150 阅读 · 0 评论 -
遮罩的效果以及在组件设计中的应用
试验目的:1. 确定遮罩对显示对象的尺寸没有影响2. 调查遮罩对层叠的多个对象的影响实验一:观察两个大小相同,位置有重叠的显示对象。黑色把红色对象遮住一半。package { import flash.display.Sprite; public class test1 extends Sprite { public function test1() {原创 2013-04-05 13:19:12 · 713 阅读 · 0 评论 -
线条绘制(lineStyle)的疑问
flash.display.Graphics.lineStyle(thickness:Number=null, color:uint=0, alpha:Nu原创 2013-03-03 00:39:49 · 7214 阅读 · 0 评论 -
UI组件:整体的结构设计、UI的设计
UI组件是构成UI界面的基本元素,具有相同基础结构和行为模式的多种UI组件在一起形成了组件库。一部分组件之间有一定的关联:类的继承,组合。UI组件设计的本质就是: 1. 骨架设计:基础结构 + 行为模式 2. 外观设计:UIUI组件库中,骨架设计是相对不变的部分;而UI设计是丰富的,是多变的。不变 + 多变 = 千变万化的UI==原创 2013-03-10 01:05:34 · 2457 阅读 · 0 评论 -
as类成员变量的特殊用法
看下面的示例代码:package{ import flash.display.Sprite; import flash.text.TextField; public class startClass extends Sprite { private var str:String; public function startClass() {原创 2012-03-11 20:06:17 · 1766 阅读 · 0 评论 -
as:为什么循环结构无法产生动画
FlashPlayer的弹性跑道模型回答了这个问题:没有画面渲染就看不到画面变化,画面渲染只发生在弹性跑道一桢的最后。如果这一桢当中的循环结构代码没有执行完,就不会进行画面渲染,当然画面没有变化,也就没有了动画效果。原创 2012-03-12 14:35:22 · 472 阅读 · 0 评论 -
as的特殊循环结构:帧循环
for循环、while循环、定时器循环是开发语言级别的循环控制,所有开发语言基本都支持。基于FlashPlayer弹性跑道执行模型,在ActionScript语言中还支持另外一种特殊的循环控制:帧循环。也就是设置事件监听器,监听由FlashPlayer发出的周期性帧事件:Enter_Frame,在监听函数中作处理。由于事件Enter_Frame是周期性发出的,所以监听函数也是周期性调用原创 2012-03-12 11:46:13 · 1237 阅读 · 0 评论 -
ActionScript3(Flex)事件机制的设计技巧: Event / addEventListener
显示列表上,对象A发出事件E,那么A以及A的父对象、父父对象。。。都有能力响应该事件。这就是ActionScript3(Flex)的事件流机制,很灵活,我们可以利用这个机制轻易地完成其他语言很难完成的动作设计。但是,除非特殊需要,通常我们希望对象A发出的事件不要被预期外的其他事件监听器所响应,以免引起预想外的动作(事件机制的灵活性的代价)。 ActionScript3(Flex)事原创 2012-03-27 17:24:55 · 2739 阅读 · 0 评论 -
loaderInfo.parameters["resourceModuleURLs"]
mx.managers.SystemManager.as 的函数initialize()中,有如下代码: // They can also specify a comma-separated list of URLs // for resource modules to be preloaded during frame 1. var reso原创 2012-03-15 19:14:23 · 1370 阅读 · 0 评论 -
是谁把Adobe数字签名的RSL(*.swz)存放到FlashPlayer指定的缓存当中的? 是FlashPlayer
是谁把Adobe数字签名的RSL存放到FlashPlayer指定的缓存当中的? 是Flex框架吗?经过试验,这是FlashPlayer自动为我们做的。 >>FlashPlayer的缓存在哪里?(1)。XP系统 C:/Documents and Settings/用户名/Application Data/Adobe/Flash Player/AssetCache/原创 2012-04-03 17:32:35 · 6561 阅读 · 0 评论 -
利用AS3编译器为让FLex程序成为多帧:Frame编译器参数
ActionScript中不能通过代码来定义多帧的MovieClip实例,但是可以通过FlashIDE或指定ActionScript编译器的[Frame]参数来实现该目的。我们看看后者的例子。在FlashBuilder中建立ActionScript工程。下面程序的执行结果是在画面上显示帧数:3我们可以通过此法生成任意帧数的MovieClip实例。Sample原创 2012-04-02 10:18:09 · 1654 阅读 · 0 评论 -
currentFrame / totalFrames / framesLoaded
MovieClip的属性的含义:(1)。totalFrames 它是MovieClip实例包含的帧数,该值始终不变。(2)。framesLoaded swf文件是流式加载,该属性表示当前已经下载了多少帧,随着下载的继续,该值逐渐变大,最终等于totalFrames 。(3)。currentFrame原创 2012-04-04 23:16:21 · 2316 阅读 · 0 评论 -
AS的UI组件架构设计
Flashplayer拥有独特的帧模型(可变跑道模型)和内部时间片的划分机制。提供给开发者的编程接口就是ENTER_FRAME事件和RENDER事件。ENTER_FRAME事件代表播放头进入该帧,标志着该帧开始。RENDER事件是Flashplayer进行实质的屏幕更新前发出的事件,开发者可以监听该事件,在屏幕渲染前做最后一件事。该事件可以理解为该帧即将结束,下一帧即将开始原创 2012-12-03 18:21:14 · 2528 阅读 · 0 评论 -
(未解决)Enter_Frame和Render事件是发生在一帧的头和尾吗?
[SWF] C:\Users\Administrator\Adobe Flash Builder 4.6\testAS\bin-debug\testAS.swf - 解压缩后为 1,639 个字节onEnterFrame=32 632onRender=32 635onEnterFrame=33 339onRender=33 341onEnterFrame=34 339onRende原创 2012-12-03 18:25:59 · 1903 阅读 · 0 评论 -
stage.invalidate()、event.updateAfterEvent()对渲染的影响
键盘、鼠标、定时器的事件的方法updateAfterEvent会让Flashplayer立即更新屏幕,但是不会发生Event.RENDER事件。stage.invalidate()不会让Flashplayer立即更新屏幕,但是会促使Flashplayer发出Event.RENDER事件。updateAfterEvent和stage.invalidate的结合会让促使Flashplayer发原创 2012-12-03 20:48:49 · 2771 阅读 · 0 评论 -
动画的帧频设定和人眼生理特关系中的简单数学
人眼生理特性:视觉暂留( 0.1~0.4秒),小于0.1秒的外观变化对于人眼来说就是连续的动画。如果相邻两帧的变化时间小于0.1秒,那么该帧动画对于人眼来说就是连续的。“相邻两帧的变化时间小于0.1秒”意味着帧频是多少呢?1秒除以0.1秒/帧 = 10。也就是说帧频为10的动画对于人眼来说基本上就是“连续的”。而Flashplayer默认的帧频是24。可以知道在默认帧频原创 2012-12-03 21:48:18 · 3638 阅读 · 0 评论 -
Sprite的长和宽
做个试验,看看Sprite的长和宽是如何被设定的。 第一个试验:即便是为Sprite设定长和宽,也不会起作用。package{ import flash.display.Sprite; public class test extends Sprite { public function test() { this.width = 100;原创 2012-12-20 21:15:54 · 1064 阅读 · 0 评论 -
浮点数保留小数点位数的做法之一: Math.round(_value * n) / n;
例如保留小数点位数 =原创 2014-04-15 10:34:42 · 15710 阅读 · 2 评论