首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

flash as3 - 我需要在byteArray数据中进行二进制搜索

在这个问答内容中,我们需要在一个byteArray数据中进行二进制搜索。这里的byteArray是一个字节数组,可以用来存储任何类型的数据。二进制搜索是一种在有序数据集中查找特定元素的算法,它的时间复杂度为O(log n)。

在Flash AS3中,可以使用以下代码实现二进制搜索:

代码语言:actionscript
复制
function binarySearch(byteArray:ByteArray, target:int):int {
    var left:int = 0;
    var right:int = byteArray.length - 1;
    while (left <= right) {
        var mid:int = (left + right) >> 1;
        byteArray.position = mid;
        var current:int = byteArray.readInt();
        if (current == target) {
            return mid;
        } else if (current< target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return -1;
}

在这个函数中,我们使用了一个while循环来不断缩小搜索范围,直到找到目标元素或者搜索范围为空。需要注意的是,这个函数假设byteArray中存储的是int类型的数据,因此使用了readInt()方法来读取数据。如果byteArray中存储的是其他类型的数据,需要使用相应的读取方法来读取数据。

在使用这个函数之前,需要先将byteArray的position属性设置为0,以便从第一个元素开始搜索。如果找到目标元素,则返回其在byteArray中的索引,否则返回-1。

需要注意的是,二进制搜索只适用于有序的数据集合。如果数据集合是无序的,则需要使用其他搜索算法,例如线性搜索或者排序后再进行二进制搜索。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

as3+php上传图片的三种方式

”,在Language的“Default Flash Version”修改为10,选择Player Debug 的路径 ?...) 3、使用到了Adobe的官方组件PNGEncoder,google code上的下载地址>> 4、使用到了as3的base64Encode,google code上的链接地址>> 一、使用二进制上传图片...以下说明转载至 PHP默认只识别application/x-www.form-urlencoded标准的数据类型。...三、使用FileReference类进行上传 as3代码: package { import fl.controls.Button; import flash.display.Loader...以上三种方式,在不同的场景下面可能应用不太一样,比如第二种,使用编码后的字符串方式进行传输的,这样就可以通过socket通道传输数据了(虽然这很浪费而且耗费带宽,环境允许的话还是应该优先考虑使用web接口进行处理

1.4K40

分析 PPTV 视频真实播放地址全过程(Java版)

有的朋友说:没上班或者我们 App 没有播放视频的需求。那你也可以学学里面用到的 url 签名技术啊,将来和别的公司做数据共享的时候你们的 url 也是要加密的啊。...[CDATA[    import flash.display.Loader;    import flash.events.Event;    import flash.net.URLRequest;...计算 key 值(和上面的 k 不是同一个) 通过上图不难发现 key 值的计算是用 constructKey 方法生成的,同样搜索 constructKey: image.png 有了 as3 源码改成...现在验证一下上面说的算法,搜索 ahl_random 找到如下方法: ? 看到没,这里面还有 VIP 相关的参数等着你发掘新的功能。...开源地址 关注凯哥公众号获取 把项目下载后导入到 MyEclipse ,右键 App.java 那个类-》Run as -》Java Application。

2K21

AS3的序列化与反序列化

AS3的序列化功能其实比较弱,Adobe官方的第三方json序列化工具类可以把对象的属性序列化为字符串,并反序列化为对象。但如果对象定义了自己的function,则这部分序列化时将被忽略。...也常会遇到将图片数据序列化与反序列化的场景(比如在二个flash之间转送图片),有二种办法实现: 1.利用JPGEncoder或PNGEncoder import flash.events.MouseEvent...bytes:ByteArray; var bit:SampleImage;//SampleImage是库的图片链接"类名" //将图片序列化为ByteArray function btnEncodeClick...; import flash.utils.ByteArray; import flash.display.Bitmap; import flash.events.Event; import flash.net.FileReference...; var bytes:ByteArray; var bit:SampleImage;//SampleImage是库的图片链接"类名" //将图片序列化为ByteArray function btnEncodeClick

93590

JavaScript与ActionScript3那些事

希望在三十岁以前,有机会写一篇亲历参与“创业”的经历,从js前端转as3前端的历程,也算是送给自己三十岁生日的一份礼物:)  关于创业、转岗、管理,有机会一并写出自己的想法,现在还不太成熟,扯远了,...” 开始讲起,先使用JS判断当前浏览器是否安装了flash player,然后获取其版本,是否满足最低flash player的版本,然后动态创建dom节点,并追加到页面。...如果页面需要加载远程的swf文件,如果需要swf让js进行调用,则需要在代码中加上: Security.allowDomain("*"); Security.allowInsecureDomain...AS3调用JS所使用的方法:ExternalInterface.call 而JS调用AS3要在AS3内先“注册”,而且必须要等待swf加载、注册完之后,才能调用它的方法 AS3进行注册:ExternalInterface.addCallback...之前也写过一些关于as与js相关的文章: flash在网页应用的一些特殊应用场景>> chrome、ff下flash的mousewheel事件失效(wmode=transparent)>> js与as

1.1K10

一次失败的破解经历

通过RPC调用了一个方法GetLive,该方法返回了一个ByteArray对象————可以理解为二进制流 3....将该二进制对象load到Loader并允许其访问父SWF的代码权限 这里稍微说明一下,这个操作是Flash里面加载另一个Flash的过程,Loader对象可以直接加载一个swf的URL,或者就是上述的直接从内存里面加载一个二进制对象...通过模拟这一个过程,在连接断开之前,通过fileReference对象将这个ByteArray对象存储到了硬盘上。再通过反编译工具打开,看到了这个SWF文件的源码。...首先通过反编译工具对SWF进行局部修改,意图去掉其中的一些视觉元素(也是通过RPC返回的ByteArray加载到屏幕上的),结果只要修改过SWF,连接就会很快断开。...后来打开Adobe官方文章查看了RTMPE协议的说明,恍然大悟:FMS服务器可以用RTMPE协议对swf文件进行验证,如果不是指定的swf客户端文件就会拒绝连接。

58040

AS3.0类初始化的顺序

做了一个比较,java中有静态初始化块的概念(as3是没有的),格式如下: static { //TODO…. } 关于java类的初始化顺序,想只要随便搜索一下,将有超过十万的结果出来 这里侧重点在...as3的代码 在同一包下若有三个类: main.as Parent.as 父类 SubClass.as 子类 其中SubClass继承至Parent ?...s_field); trace('子类--构造器'); } trace(s_StaticField); } } 测试类Main.as的代码: package { import flash.display.Sprite...; import flash.events.Event; public class Main extends Sprite { public function Main():void...as3类的初始化顺序与java基本上是相同(除了as3没有静态块的概念外): (1)当类被加载时,该类的静态属性和方法会被初始化 (2)初始化成员变量 (3)调用构造器 而java: ?

64840

AS3与PHP通信

目前flash在各方个面的应用越来越广,而flash也不单只是注重自身绚丽的效果,也需要和外界程序交换数据,以实现更强大的功能,随着as3的到来,flash和外部交互的方式也越来越简便和合理化。...今天就在这里谈谈as3和后台数据的交互(这里选择as3 php架构,其他配置同理)。...URLLoader接受一个URLRequest 作为构造的参数,使用load方法来加载数据。URLLoder也可以进行监听,这点也loadVars不同,一个简单的示例如下: 1....> 从上面的示例可以看出,as3和后台交互是多么简单,但这只是单项的交互,如果要flash向后台发送数据并传回数据该如何去做呢?这个时候你可能会把代码该成这样: 1....2,文件的编码,这是个常见的问题,经常很多数据变成了乱码,或者解析出错,都是因为编码的问题,的做法是确保发送的数据和后台传回的数据都是UTF-8格式(因为flash默认编码为utf-8) 最后希望这篇文章能对你有所帮助

89430

Metaball(元球)效果学习

几年前就在网上曾看见过这种效果,但一直不知道叫什么名字 前一阵无意在9ria(天地会)论坛上看到了一篇专门讲这个的文章:AS3 元球(Metaball),不过有点遗憾的是那篇文章上的代码直接复制下来都不能调试...所需要的二进制文件metall.pbj,然后在Flash测试一把: package { import flash.display.Sprite; import flash.events.Event...; import flash.filters.BlurFilter; import flash.filters.ShaderFilter; import flash.utils.ByteArray...; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Shader; import...上面提到的都是极其精确的标准做法,如果要求不高,其实这种效果可以直接用Bitmap + 模糊滤镜来模似(不过看上去效果有点假),大概原理就直接把二个圆形进行重叠,然后把最终的(并集)图形边缘模糊处理。

2.2K100

HTML5的File API

国外有一个网站叫min.us  用户只需要把图片拖到网页面,然后自己进行排序就OK了,很方便。...flash比较难搞的就是在非ie浏览器认为flash是新窗口会话,当前网页的cookie无法传递到flash上传工具,而针对这个一般就是用JS把当前页面的cookie通过flash再传给后台,而对于一个后台如果使用了统一验证身份的接口那可能会有点麻烦...而HTML5的FileReader对象与as3的很像,只不过目前as3的方法比这个多(有兴趣可以自己去看看adobe的lives docs,对比一下两者的区别与共同点)。...as3需要使用flash player 10+才支持本地预览,而且图片不易过大。...尝试着去寻找HTML5是否也如as3可以让开发者自定义过滤选择文件呢,结果被我找到了http://en.wikipedia.org/wiki/File_select  添加一个属性就好了accept

1.9K20

网页游戏怎么开发的_网页软件游戏开发

此系列,至少是目前阶段,主要关注如何使用ActionScript 3.0开发网页游戏(本人完全从0起步),关于后台如何使用C++不进行详细介绍(后面有机会在介绍)。...1.近期计划 下面是导师给我的安排: 时间 任务 学习目标 输出 2011-5-5 ~ 2011-5-18 1、熟悉AS3基本语法 2、了解AS3事件机制 3、熟悉Flash动画原理 4、使用AS3获取外部数据...玩家将于纽约市中心开始进行游戏,藉由不断搜寻服装商店,购入各式各样的衣服、裙裤、套装、配件…等,让自己能穿上更多豪华服饰,成为真正的派对女王。...: 注意勾选Advanced的Multi Instance,否则一次只能打开一个项目,不方便使用。...3.Hello World 新建一个AS3项目,如下所示,在Main.as输入下代码: 运行可以在输出窗口看到,“Hello World!”。

5.6K30

webgame开发的文件解密

大家好,又见面了,是你们的朋友全栈君。 上一篇讲的是文件的加密,这一篇记录一下如何加载并显示图片。...因为图片文件经过加密,已经成了二进制流的文件了(一堆乱码),只能使用URLStream来加载资源了。...这里有一点要注意:URLStream的读取操作是非阻塞的,在读取数据之前必须使用bytesAvailable属性来确定是否能够获取足够的数据,如何不能获取足够的数据,将引发EOFError异常。...(); 40: urlLoader.readBytes(byte, 0, byteLen); 41: byte = EncryptUtils.DeEncrypt(byte); //对数据进行解密操作...>> flash.display.Bitmap>> flash.net.URLStream>> 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133958.html

34520

LayaAir引擎入门教程:一篇学会用AS3语言开发HTML5(FlashDevelop开发环境)

特别强调一下,通过与一些早期参与测试的开发者反馈交流,发现一个很重要的问题,那就是很多有经验的程序员自以为对Flash开发模式很熟悉了,跳过教程的步骤,直接照着DEMO代码写,出现了报错走不通的情况。...第一节 开发前的准备 1.1代码编辑器的准备 对于AS3程序员来说,最常用的就是Flash Bulider和FlashDevelop。...“libs”引擎代码目录,LayaAir引擎代码处于该目录的src子目录。 “laya.js.exe”为AS3代码编译器,用于将AS3代码编译为JS代码。...第六节 WebGL开启 LayaAir引擎默认采用Canvas模式渲染,如果想要启动WebGL模式,需要在初始化舞台的时候的进行设置,例如: 默认Canvas模式渲染的写法为 Laya.init(...写在最后 在本篇文章仅对引擎部分进行了入门级指引,请大家保持对Layabox开发者中心的关注,我们更多教程会逐步的丰富起来,及时更新到开发者中心。

2.2K40

Flash Xss入门

由于乌云及社会各界的白帽子的上报,腾讯目前已经对绝大多数可能存在问题的Flash进行了修复。使得在寻找真实案例时着实麻烦了不少。...Flash的actionscript脚本目前网络上存在2种版本,即2.0与3.0,本次教程先以as3.0为例。同时教程还会在如何使用搜索引擎搜索,如何查找关键词及构造利用代码方面进行详细的讲解。...显然这样会搜索出很多FLASH文件,不利于我们后续的漏洞查找,所以我们需要输入某个关键词来进一步缩小范围。这里列举一些寻找关键词的方式。...如果你对FLASH有一定了解或者你天资聪慧的话,通过以上地址,你或许能猜到这个FLASH会调用http://v.qq.com/doco/pic.xml这个XML文件的数据,为了看看是什么数据,我们可以使用抓包软件...我们打开保存的as代码,进行搜索。 ? 可以看到,当点击图片时,直接将数据里的link作为参数传递到了 URLRequest。 11.

76730

Java代码审计汇总系列(四)——反序列化

进行漏洞利用exploiting,ysoserial的payloads如下: 当然也可以自写使用ObjectOutputStream序列化一个Runtime.getRuntime()的数据进行远程代码执行...代码层重点关注一些反序列化操作函数,定位代码后判断反序列化数据是否可控,定位入口关注反序列化常用的类和函数: ObjectInputStream.readObject ObjectInputStream.readUnshared...按照这个逆向思维,挖掘反序列化通常使用关键字进行全局搜索,如ObjectInputStream,通过搜索定位到代码DataConvert.javabyteArray2Object使用readObject...进行了反序列化操作: public static Object byteArray2Object(byte[] byteArray) throws IOException,ClassNotFoundException...-jar ysoserial.jar CommonsBeanutils1"curl IP:port" > bean.ser 将生成的二进制格式数据bean.ser填入对应参数处进行发包,收到来自服务器的

1.9K10

webgame开发的文件加密

一般的webgame中都会对资源、消息进行加密,这里只是简单记录一下对文件的加密过程。 ?...上图为实际项目中所使用的加密工具(较为简单的一个air项目) 输入加密key +  需要加密的文件  --> 加密 –> 将加密后的文件保存至另一目录(后缀名视自己的项目的规则进行修改) 实现步骤: 1...、读取文件(flash.filesystem.File),获取文件流(flash.filesystem.FileStream),获取文件的二进制流(flash.util.ByteArray) 2、对二进制数据进行加密...(混淆一下) 3、保存加密后的二进制数据 1: var file:File = new File(path); 2: //file.isDirectory == false && file.exists...22: tempFS.open(tempFile, FileMode.WRITE); 23: tempFS.writeBytes(encrypt(bytes)); //加密数据

90130

as3与php 上传单个图片demo

as3的要点: 1、单个上传使用FileReference,一次可选择多张图片可使用FileReferenceList,在flash player 10+可使用load方法可实现预览图片 2、过滤选择文件...在调用browse时传入(参数为数组),其中FileFilter实例第二个参数,多个文件使用;分隔,如*.jpg;*.gif 3、监听上载完成可以使用Event.COMPLETE,但若需要获取后台返回的数据流...,则需要监听UPLOAD_COMPLETE_DATA(在flash.net.DataEvent包) php: 1、接收上传参数,默认为(Filedata),可在as3FileReference实例的...upload第二个参数指定 2、在windows下上载图片,其中文名称,在保存时需要转成gb2312(不然会出现乱码),在判定图片是否存在是也需要使用gb2312(使用utf-8则不行) as3的代码(...若需要完成更复杂的应用,则要自己在此基础上进行封装一下,例如:多个文件上载,显示上载进度条…

1.4K30

技术干货分享:如何选择 HTML5 游戏引擎

由于H5引擎有很多,笔者在这里进行了精心的筛选,过滤掉不支持webGL的引擎,以及封装了第三方渲染内核的JS框架,和不能直接在浏览器运行的JS引擎。...这个普及率在国内带来的影响,;你懂的…… 1、选择H5游戏开发语言 拥有广泛开发者的H5游戏开发语言共有三种,分别为Flash AS3、TypeScript、JavaScript。...笔者建议在开发中大型游戏项目的时候,采用TypeScript或者是Flash AS3语言进行开发。如果是小型游戏,任选其一即可。...一定要有成熟的商业案例,一般引擎的官网上都会有游戏案例介绍,我们在选择引擎之前要进行深入体验,包括:商业案例的数量、商业案例的种类、稳定性、流畅度(要在低端机里体验)、项目复杂度、项目相似度等。...比如Flash AS3开发的2D或3D页游或手游,可以把逻辑与算法代码直接拷贝移植到Layabox引擎项目中,开发速度提高数倍。

2.1K90

干货分享:如何选择HTML5引擎?至关重要!

由于H5引擎有很多,笔者在这里进行了精心的筛选,过滤掉不支持webGL的引擎,以及封装了第三方渲染内核的JS框架,和不能直接在浏览器运行的JS引擎。...这个普及率在国内带来的影响,你懂的…… 1、选择H5游戏开发语言 拥有广泛开发者的H5游戏开发语言共有三种,分别为Flash AS3、TypeScript、JavaScript。...笔者建议在开发中大型游戏项目的时候,采用TypeScript或者是Flash AS3语言进行开发。如果是小型游戏,任选其一即可。...一定要有成熟的商业案例,一般引擎的官网上都会有游戏案例介绍,我们在选择引擎之前要进行深入体验,包括:商业案例的数量、商业案例的种类、稳定性、流畅度(要在低端机里体验)、项目复杂度、项目相似度等。...比如Flash AS3开发的2D或3D页游或手游,可以把逻辑与算法代码直接拷贝移植到Layabox引擎项目中,开发速度提高数倍。

83030
领券