介绍AS3中常见的位运算技巧。 在AS3中位操作是非常快的,这里列出一些可以加快某些计算速度的代码片段集合。...我不会解释什么是位运算符,也不会解释怎么使用他们,只能告诉大家如果想清楚其中的原理先认真学一下2进制....左位移几就相当于乘以2的几次方( Left bit shifting to multiply by any power of two ) 大约快了300% x = x * 2; x = x * 64;...350% x = x / 2; x = x / 64; //相当于: x = x >> 1; x = x >> 6; Number 到 integer(整数)转换 在AS3中使用int(x)快了10%...尽管如此位操作版本在AS2中工作的更好 x = int(1.232) //相当于: x = 1.232 >> 0; 提取颜色组成成分 不完全是个技巧,是正常的方法 (Not really a trick
单件(singleton)模式在c#中是最容易实现的模式,其主要用意就在于限制使用者用new来创建多个实例。...但在as3中,构造函数必须是public的(语法本身要求的),而且也不能在构造函数中抛出异常(编译可通过,但是逻辑行不通),因为这样相当于把创建实例的路子完全切断了,一个实例也得不到!...这里要用到as3的一个特性:默认情况下,一个as文件,只能放一个类,而且必须用package声明,但有一种特殊情况:一个as文件中定义二个类,一个用package声明,一个不用!...Singleton2(new _nothing()); } return _instance; } } } class _nothing{} 这样就清爽多了,当然Singleton模式在AS3...中的实现方法不止一种,下面这种也许更容易理解: package{ public class Singleton{ private static var _instance:Singleton
else{ return sortNum(x.value, y.value); } } 注意 : return sortNum(x.value, y.value); 这是 else 中的一句...: 这一句的理解 是 可以 用第二个字段继续比较 如: return sortNum(x.money, y.money); 依次类推...第三个比较字段 , 第四个比较字段... /** 这么写就是降序了...类型的 因为 Vector 比 Array 的 性能要高 , 但是 Vector 没有 Array 的sorton功能 , 那 只有自己 写一个 排序的 方法了
显示列表上的该实例的任何子级都不会受到影响。...要更改显示列表上对象的所有子级的 mouseEnabled 行为,请使用 flash.display.DisplayObjectContainer.mouseChildren。...当您使用 Sprite 类的实例(而不是使用 SimpleButton 类)来创建按钮时,此属性很有用。...此过程可能导致鼠标事件出现意外行为,因为当您期望父实例成为鼠标事件的目标对象时,作为子项添加的 Sprite 实例却可能成为目标对象。...要确保父实例用作鼠标事件的目标对象,您可以将父实例的 mouseChildren 属性设置为 false。 设置此属性不会调度任何事件。
本文链接:https://blog.csdn.net/weixin_44580977/article/details/101981194 接下来了解下矢量运算的能力, 矢量的特性可以理解为并行化的运算..., 也就是说在对数组执行复杂计算时会作用到元素级别, 这样仅仅用简洁的表达式就可以代替Python的for循环。...此处使用np.around()方法将所有数据保留2位小数,由于矢量运算的能力,此处仅需一行代码就可实现,如下所示: stock_data = np.around(stock_data,2)#保留2位小数...11.2 9.4 9.83 8.99] """ 还有其他方法 np.roll()为循环右移 第一个值需要设置为无效值np.nan np.roll(stock_data,1) NumPy中的...ndarray类,可以更加简洁的进行 矢量算术运算,并且在处理多维的大规模数组时快速且节省空间。
遇到很奇怪的问题,as3中监听资源下载的PROGRESS事件(ProgressEvent.PROGRESS),它的bytesLoaded属性倒是正常的,但bytesTotal属性却始终为0,结果是导致了得到的下载比率为无穷大...>> 2、从php里动态加载内容导致的bytesLoaded始终为0,解决方案>> 3、web服务器开启gzip导致的,参考地址>> 因开发环境是在Windows下,而web服务器使用的是nginx,然后查看了一下...nginx.conf的配置,发现gzip是开启的,但只是对以下的文件类型才进行压缩 gzip_types text/plain application/x-javascript text/css...我用httpwatch抓取swf的下载,发现其http header在gzip开启的情况下还是有的,这种现象很难解释了,gzip对swf的加载起到了什么影响?...难道正如那篇文章所讲的,返回的http header里没有Content-Length属性?而我抓到的却是有的… 不管怎么样,问题是解决了,可是疑惑却加重了…
上面的例子,也是游戏开发中比较常用的功能,与“怪物”战斗后,将其“灰”掉。这其中最重要的还是对AS3颜色矩阵滤镜(ColorMatrixFilter)的使用。...上面实例核心的代码为changeImgGray函数,示例使用flex + sdk3.6编写: 1: <?xml version="1.0" encoding="utf-8"?...47: 48: 49: 50: 随后我在网上找到一个别人写好的as3...0.0820 * 256, 0, -256 * n, 0, 0, 0, 1, 0]); 191: } 192: } 193: } 在网上搜索到的一些资源...: ColorMatrixFilter--颜色矩阵滤镜 AS3的工具类库—ColorMatrixFilterProxy.as Understanding AS3 ColorMatrixFilter class
(AS3)关于SPLICE的删除功能的博文: bug : 这是一个AS3本身的一个"bug".先看看我的测试: package{ import com.ainy.Applyfn; import...index += 1; trace($index +" 号 Name is "+$itemName); } } } } 得到的结果...很显然将数据集合的最后一个元素去掉了....splice的前2个元素: 第一个:要删除元素的开始索引->index 第二个:一共要删除几个 当第一个元素为-1时,竟然删除了集合的最后的元素,实在是...倒数删除,倒数第一个元素的...此博文先给一直认为:splice(-1,1)不删除任何元素的AS3游戏开发前端人员.此前我也是.此外,不知道其他语言是不是也是这样:比如C#,Java,C++,欢迎给位拍砖
Adobe官方并没有"泛型数组"的叫法,这是我自己对Vector的叫法(有点标题党),不过Vector在使用上确实跟c#中的泛型数组有些相似之处。...我们知道:ActionScript3.0中的Array数组可以存放多种类型,甚至在同一个Array数组中,可以同时存入String,Object,Number......,但其实我们在实际开发中,通常一个数组中所保存的元素类型都是一致的,为了改进这种情况下的效率,AS3.0新增了一个Vector类。...它强制要求数组中的每个元素都必须是同样的类型,从而省去了“装箱”、“拆箱”之类的操作,提高了性能。...下面这一段测试代码演示了Vector与Array的性能差异: var count:uint=50000; var v:Vector.=new Vector.
1,这个getBound 在某些情况下非常实用.例如,聊天系统的聊天面板.做个这玩意的朋友,应该对着玩意都点熟悉. 2,这里我用这玩意,实现了一个功能: 面板"LevelTitleMainPanel"的关闭策略...,除了通过面板上的关闭按钮,还能在此面板的外部单击时,面板也能关闭...."LevelTitleMainPanel"的部分代码: override protected function onAddStage():void{ super.onAddStage();...round.width+" MyHeight:::=>"+$round.height); } 其中"this.getBounds(stage)"表示 LevelTitleMainPanel 在 stage 中的位置及其宽长
在as3中很多时候需要只能选中png中可视区域,即透明区域“感觉可以穿透”。两张png重叠的时候,鼠标可以分别响应它们的事件。如下图所示: ?...在网上搜索的时候,看到有人没用其它额外的类,自己写了一个例子。...地址在这里:http://www.shch8.com/blog/post/71.html 有demo可以下载(例子需要使用flash cs4+才能打开) 比较巧妙的是这一段核心代码: var bitmapData...(我觉得对于大的图片效率可能存在问题---猜测~) 而国外很早以前就有现成的类了“InteractivePNG”,文档在这里:http://www.mosessupposes.com/utilities.../InteractivePNG.html 示例和类的下载地址:http://www.mosessupposes.com/utilities/ 自己用flex简单的写了一个demo: <?
问题背景我们有一个静态的多层级表单,需要使用 Python 对其进行建模,以便于我们能够在代码中对表单中的特定层级或子树进行获取和操作。...解决方案2.1 使用 XML 作为数据存储我们可以将这种层级结构的数据存储在 XML 文件中,并使用 xml.etree.ElementTree 标准模块将 XML 文件加载到 Python 中的层级数据结构...例如,我们可以使用以下代码来加载 XML 文件并获取表单中的所有问题:import xml.etree.ElementTree as ET# 加载 XML 文件tree = ET.parse('form.xml...')# 获取表单根节点form_root = tree.getroot()# 获取表单中的所有问题questions = []for question in form_root.iter('question...'): questions.append(question)# 打印问题列表print(questions)2.2 使用嵌套类创建数据结构我们可以使用 Python 中的嵌套类来创建层次化的数据结构
以一个小球为示例,在鼠标点击的时修改它的加速度值(在短时间内移动的距离),加速度以一个值加速,在遇到边界时进行反向。...代码参考自:《ActionScript 3.0 动画教程》,添加了拖动时的范围限定。
简介 本文将会以图表的形式为大家讲解怎么在NumPy中进行多维数据的线性代数运算。 多维数据的线性代数通常被用在图像处理的图形变换中,本文将会使用一个图像的例子进行说明。...对于一个二维的图像来说,其分辨率可以看做是一个X*Y的矩阵,矩阵中的每个点的颜色都可以用(R,G,B)来表示。 有了上面的知识,我们就可以对图像的颜色进行分解了。...奇异值跟特征值类似,在矩阵Σ中也是从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。...在上述的图像中,U是一个(80, 80)的矩阵,而Vt是一个(170, 170) 的矩阵。而s是一个80的数组,s包含了img中的奇异值。...如果将s用图像来表示,我们可以看到大部分的奇异值都集中在前的部分: 这也就意味着,我们可以取s中前面的部分值来进行图像的重构。
简介 本文将会以图表的形式为大家讲解怎么在NumPy中进行多维数据的线性代数运算。 多维数据的线性代数通常被用在图像处理的图形变换中,本文将会使用一个图像的例子进行说明。...对于一个二维的图像来说,其分辨率可以看做是一个X*Y的矩阵,矩阵中的每个点的颜色都可以用(R,G,B)来表示。 有了上面的知识,我们就可以对图像的颜色进行分解了。...奇异值跟特征值类似,在矩阵Σ中也是从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。...在上述的图像中,U是一个(80, 80)的矩阵,而Vt是一个(170, 170) 的矩阵。而s是一个80的数组,s包含了img中的奇异值。...如果将s用图像来表示,我们可以看到大部分的奇异值都集中在前的部分: ? 这也就意味着,我们可以取s中前面的部分值来进行图像的重构。
在不使用文档类(document class)的情况下,直接在时间轴上写以下代码: trace("this->" + this,",root->" + root,",stage->" + stage);...--> true 0 同样的代码,如果放在有文档类(比如Test2.as)的环境中测试(构造函数中),输出如下: this->[object Test2] ,root->[object Test2] ,...--> true 0 很明显:没有文档类时,this就是指主时间轴;而在有文档类时,this就是文档类自身的实例;另外不管在哪种条件下 this与root都是等同的,this.stage也stage也是相同的
1,9宫格在UI的缩放中应用的很多.如果你不明白什么是9宫格,请百度 , google 在AS3中设置9宫格, 有2种方式: 我现在讲第一种方式 , 也是最简单的一种方式: 在 Flash软件中: ?...编辑这个元件,你会这个元件多了4条线,没错,调整这4条线就能,就能改正该元件的缩放特征: ?...在FB/FD中,也就是在AS3代码中的实现,也就是第二种方法: package com.upupgame.mahjong.player2.game.views.ui.controls.dialogs.huCards...}//package com.upupgame.mahjong.player2.game.views.ui.controls.dialogs.huCards 重点是 : scale9Grid方法的应用
在 AS3 编程中,免不了要使用Object 和 Dictionary , 实际上 本人 很多时候 是使用 Vector 或者 Dictionary 的 ....因为 , Vector 的 效率 是 最高的 , 而 Object 和 Dictionary 次之 , 这里 我只讲 Object 和 Dictionary 的 遍历. ...以 Key 进行的遍历: Object -> for(var $key : * in Obj ){ trace("Key -> "+ $key); trace("Obj 元素 -...>" + Obj[$key]); //当然 可以 保存 $key 若 Obj 当中的Key 为 Uint 则: var myKey : uint = $key as uint; } ...Key-> "+ $key); trace("Dic 元素 -> "+Dic[$key]); var myKey : String = $key; } 这里假设 Dic 中的
类似C#中自定义事件需要一个自定义的EventArgs子类一样,AS3也需要开发者自定义一个Event类的子类,这里我们假设一种场景:设计一个Person(人物)类,里面有Age(年龄),Name(姓名...),我们希望每当Person类的实例Age(年纪)发生变化时,能触发一些自定义事件,从而调用某些特定的处理方法。...(类似C#中的委托/事件机制,Person类并不知道最终Peson的使用者将如何处理这二个事件,但只要遵守约定就能正确调用开发者执行的处理方法) 3.测试刚才的事件,新建一个Flash File(ActionScript3.0...)的fla文件,在第一帧写入以下测试代码 : var jimmy:Person = new Person("菩提树下的杨过",30); trace(jimmy.toString()); jimmy.Age..._age = age; } 测试fla中的代码稍加改动: var jimmy:Person = new Person("菩提树下的杨过",30); trace(jimmy.toString
AS3中的序列化功能其实比较弱,Adobe官方的第三方json序列化工具类可以把对象的属性序列化为字符串,并反序列化为对象。但如果对象中定义了自己的function,则这部分序列化时将被忽略。...jsonStr); var obj2:Object = jsonDe.getValue();//反序列化 trace(obj2.name,obj2.sex);//输出:yjm Male 另外在实际开发中,...com.adobe.images.JPGEncoder; import flash.display.Bitmap; var bytes:ByteArray; var bit:SampleImage;//SampleImage是库中的图片链接...flash.events.Event; import flash.net.FileReference; var bytes:ByteArray; var bit:SampleImage;//SampleImage是库中的图片链接...height:int = ((data.length - 4) / 4) / width; // (data.length - 4) ** 去掉开始的4个字节,其余的便是位图的字节数组了 **
领取专属 10元无门槛券
手把手带您无忧上云