接触JavaScript和ActionScript3也有近5年的时间了,它们都是应用比较广泛的脚本语言,经过这几年的工作和学习,静下来的时候想总结一些东西,作为技术上的沉淀以及培训所用,所以就有了这篇文章。先来看看二者的同性与差异性:
最近可以有1个月左右的空闲,可以稍微整理一下这个脚本解释器的开发过程。 一、缘由 2014年左右,我们使用AIR技术,开发了一个3D战争类型的手游。那时候手游开发技术主要是cocos2d,unity,Air稍微小众一些,但是也有。那个时候正是AS3走下坡路的时候,BOSS耳软心活,一会要改用cocos,一会要改用unity,于是萌生了一个自己写一个as 3.0脚本解释器的想法。 二、关于actionscript3。 As3脚本语言,实际上就是ecmascript 262 V4的加强版,也就是说基本上
HTML5是一种热门的跨平台开发技术,随着引擎技术的发展,如今LayaAir引擎的产品性能已达到原生APP的水准,甚至可以直接用于开发APP、HTML5、Flash的多端版本产品。认真学习完本篇教程,可以帮您打开全平台开发之门。
今天,引擎2.2.0 beta版本终于与大家见面了。从此以后,LayaAir引擎源码从ActionScript3全面转向TypeScript,引擎运行的JS全面支持ES6标准,在未来的引擎API设计上会利用TypeScript语言特性进行调整,提升开发效率。除此之外,这次的版本,引擎的默认图形API调整为WebGL 2.0,且3D方面也有着大量实用功能的增加,本文会逐一为大家介绍。
之前有朋友给我发送email,询问我是否有单个文件上传的源代码,因为当时写这个好像是在09年,所以放哪了一时也没找着。后来整理硬盘的时候,找到了源码,所以决定来个汇总(之前写过的关于flash+js上传文件的例子):
AS3JS是ActionScript 3.0到JavaScript的转换器,它基本上可以让你使用ActionScript 3.0语言编写客户端和服务器端JavaScript应用程序。AS3JS是不是一个框架。此工具也没有设计成用于转换的Flash到HTML5解决方案(虽然它可能会帮助!)。现在AS3JS纯粹是转换器,但是你可以自由的扩展它,如果你愿意,因为它是开源的。
父类--静态变量 子类--静态变量 父类--变量 父类--构造器 子类--变量 子类--构造器
原理跟Silverlight中的几乎如出一辙(见Silverlight如何与JS相互调用): ActionScript3代码: btnCallJs.addEventListener(MouseEvent.CLICK,fnCallJs); function fnCallJs(e:MouseEvent):void { trace("准备调用..."); //调用js中的JsHello方法,并将返回值显示到Label中 lblResult.text=ExternalInterface.call("JsHe
原生手游市场已是红海,腾讯、网易等寡头独霸天下,H5游戏市场或将成为下一个风口。据笔者所知,很多H5游戏开发团队由于选择引擎不慎导致项目甚至团队夭折。如何选择适合团队和项目的引擎,笔者通过学习和项目实践,总结微薄经验,供大家参考,非技术人员也可以将本篇内容作为引擎选择的重要关注点。 选择H5游戏引擎的思考维度 1、开发语言的支持 2、2D、3D、VR的支持 3、性能 4、引擎的应用广度 5、设计理念 6、工作流支持力度 7、商业化成熟案例 8、学习资源与技术支持能力 首先,我们要知道,当前主流的游戏引擎有哪
原生手游市场已是红海,腾讯、网易等寡头独霸天下,H5游戏市场成为下一个风口。然而,有一些H5游戏开发团队由于选择引擎不慎导致项目甚至团队夭折。如何选择适合团队和项目的引擎,至关重要,本篇源自网络,干货颇多,特在此转发分享!
Function类在as3中是直接从Object继承下来的,通常开发者定义的每一个function,均可以认为是Function类的一个实例。 如果硬要跟c#做比较,Function类跟Delegate(委托)有几分相似,均可以达到通过该类型的实例来调用不同方法的目的。 using System; namespace FunctionTest { class Program { private delegate void _delegateType(string nam
SocketManager最多在连接失败时,进行5次重连。建立socket连接代码:
单件(singleton)模式在c#中是最容易实现的模式,其主要用意就在于限制使用者用new来创建多个实例。但在as3中,构造函数必须是public的(语法本身要求的),而且也不能在构造函数中抛出异常(编译可通过,但是逻辑行不通),因为这样相当于把创建实例的路子完全切断了,一个实例也得不到! 错误代码: package{ public class singleton{ static private var _instance:singleton; public function sin
游戏性能优化,一直是游戏开发者需要学习掌握的课题,在移动设备硬件性能远弱于PC的背景下,我们对性能的需求显得更加重要。
注意:先调用ExternalInterface.addCallback,再调用ExternalInterface.call
AS3相对于以前版本的功能增强了很多,在赋予它重任时,同时也要它付出代价:垃圾收集器不再支持自动为你收集垃圾。本文中,我为大家整理了一些资料。首先,我们先来了解下垃圾收集器是个什么东西?
0x01 HTML中嵌入FLASH 在HTML中嵌入FLASH的时候在IE和非IE浏览器下嵌入的方式有所不同,可以使用embed标签和object标签,使用如下的代码进行嵌入: IE下嵌入 <object codeBase="http://fpdownload.macromedia.com/get/Flashplayer/current/swFlash.cab#version=8,0,0,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> <pa
as3 与java 都提供了Socket类用于网络通信, 但两者的使用也有较大的不同. 为了方便两者的通信, 我在做了一些实验的基础上, 写下获得的经验,以免忘记. as3 的socket 读写数据方法常用的有四个: readUTF, writeUTF, readUTFBytes, writeUTFBytesjava 的socket 输入输出流常用BufferedReader 和 DataOutputStream 包装, 以提高读写效率 如: BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8")); DataOutputStream writer = new DataOutputStream(socket.getOutputStream()); as3 方写数据时用writeUTFBytes 方法, 此时java 方读数据用reader.readLine() 阻塞式方法. as3 方写数据时用writeUTF方法, 此时java 方应改用DataInputStream 类包装输入流, 因为BufferedReader 不提供读取UTF数据的方法. java 方写数据时用writeUTF方法, 此时as3 方读数据用readUTF方法, 但此种模式有个弊端, 就是如果java方连续调用了n(n >= 2)次writeUTF方法,而as3方因来不及读取, 则最后只是第一次写入的数据被读取. java 方写数据时用writeBytes, 此时as3 方读数据用readUTFBytes方法读取数据, 可以这样读取: msg = socket.readUTFBytes(socket.bytesAvailable). 一个简单的例子: // as3 写的客户端
摘要总结:本文通过分析PHP和JavaScript两种不同的语言实现聊天室,阐述了使用JavaScript实现聊天室的优势和可行性。同时,本文还通过具体的代码示例,讲解了使用jQuery插件实现聊天室的具体方法,对于从事前端开发的人员具有一定的参考价值。
微信小游戏推出后,LayaAir引擎也同步支持了微信小游戏的开发,由于很多开发者对微信小游戏的开发流程不够了解,不太清楚如何下手。为此,我们在2018年的开工首日,从简介篇,小游戏创建篇,综合介绍篇三部分,全面介绍微信小游戏的开发、测试,与重要项目规则。
小游戏从微信小程序诞生,我们不妨看看他的官方定义:小游戏是以小程序为载体的新游戏产品形态,具备无需下载、即点即玩、体验轻便等特点。
作者使用过的最简洁的观察者模式,就是AS3源码里的EventDispatcher事件派发者对象。任何继承于这个类的对象,都可以间接实现观察者模式。
如今,随着诸多小游戏的推出,游戏市场五花八门、爆款频出,从 “跳一跳” 到 “羊了个羊”,人们似乎越来越钟爱快捷简便的小游戏。但仍有不少小伙伴提出疑问,小游戏和多年一直火爆的H5游戏相比,有什么区别?有什么优势?它的前景如何?今天,就来对这二者进行简单分析与对比。
那么为什么依附小程序产生的小游戏可以有这么大的关注度呢?先不论桌面端和APP端,与HTML5有相近的小程序游戏又怎么能频繁爆火到有这么大的流量呢?
你的App里多久没有出现过一款新应用了?距离上一个现象级的应用抖音出现已经过去了6年。移动互联网已经相当成熟,近几年不管是游戏娱乐还是生活服务应用,很难出现爆款,反观小程序、轻应用小游戏却频频跑出黑马。比如:比如这一两年大爆的“合成一个大西瓜”“羊了个羊”等小游戏。
H5游戏是运用了h5技术的响应式网站布局的游戏,它完全实现了网页游戏在手机移动端的无缝衔接。众所周知,H5游戏已盛行了多年,而如今,随着诸多小游戏的推出,小游戏爆款频出,从“跳一跳”到“羊了个羊”,人们越来越习惯于快捷简便的小游戏。
小游戏从微信小程序诞生,我们先不妨看看他的官方定义:小游戏是以小程序为载体的新型游戏产品形态,具备无需下载、即点即玩、体验轻便等特点。 「呼朋引伴,说玩就玩,玩完就走」,这或许是对小游戏最准确的定义。从最开始的“跳一跳”到爆火的“羊了个羊”微信小游戏上线4年的时间,除了涌现出不少爆火全网的小游戏之外,也有类似像“动物餐厅”、“口袋奇兵”等游戏得以孵化繁荣,凭借着微信强大的社交属性小游戏成为了游戏厂商在桌面端、App 端、H5 端之外争夺的另一个方向。
从“跳一跳”到“羊了个羊”微信小游戏上线4年时间,除了涌现出不少火爆全网的小游戏之外,也有类似于“动物餐厅”、“口袋奇兵”等游戏得以在此孵化繁荣,凭借着微信强大的社交属性小游戏成为游戏厂商在桌面端、App 端、H5 端之外争夺的另一个窗口。
原型链是JS的必备,作为ECMAScript4,原型链也是支持的。 特别说明,ActionScript3是支持完整的面向对象继承支持的,原型链只在某些非常特殊的情况下使用。 本文旨在介绍如何使用原型链。 任意对象类型都有一个prototype属性,包括导入的Unity的API也有。我们可以和JS一样的对这个prototype进行操作,比如动态的添加成员,添加方法等。 如果您决定使用原型链,那么必须舍弃编译时类型检查。如果使用强类型,则编译器会认为动态添加的成员不存在,而提示编译错误。解决办法为去掉变量的类型
近几年“跳一跳”、“羊了个羊”微信小游戏上线仅仅4年时间,除过产生不少爆火上热搜的小游戏之外,还涌现了许多像是“口袋奇兵”、“动物餐厅”等游戏。它们借助着微信强大的社交性能,使得小游戏成为了游戏厂商和创作者在在桌面端、APP端、H5等端口之外争夺的另一个渠道。
目前flash在各方个面的应用越来越广,而flash也不单只是注重自身绚丽的效果,也需要和外界程序交换数据,以实现更强大的功能,随着as3的到来,flash和外部交互的方式也越来越简便和合理化。今天就在这里谈谈as3和后台数据的交互(这里选择as3 php架构,其他配置同理)。
1. 首先,第一步,我们需要找到存在缺陷的FLASH文件。如何找到这类文件呢?最好的办法,当然是GOOGLE搜索。但是其实很多人是不太会用搜索引擎。或者知道怎么用,但是不知道该如何搜索关键词。因而教程的开始,我们来说一说,如何搜索关键词。 2. 基本语句肯定是 site:qq.com filetype:swf 意思是,限定域名为qq.com 文件类型为FLASH文件。 3. 显然这样会搜索出很多FLASH文件,不利于我们后续的漏洞查找,所以我们需要输入某个关键词来进一步缩小范围。这里我列举一些寻找关键词的方式。 3.1 已知存在缺陷的FLASH文件名或参数名,如:swfupload,jwplayer等 3.2 多媒体功能的FLASH文件名,如:upload,player, music, video等 3.3 调用的外部配置或数据文件后缀,如: xml, php 等 3.4 前期经验积累下来的程序员特征参数名用词,如: callback, cb , function 等 4. 结合以上经验,本例使用其中第三条: 我们搜索:site:qq.com filetype:swf inurl:xml 可以找到这个FLASH
相信有很多和我一样的人,曾多次问google、问baidu、问各大论坛——如何开发游戏?开发游戏如何入门?由于游戏开发本身其复杂、庞大、涉及东西比较多,始终不得其道,最终激情无情的被时间这把杀猪刀给磨灭。之后又一次激情澎湃,又一次不了了之……
之前在学习node.js时,写过一些例子和demo,偶尔也会有人发email问我node.js的一些问题。因为是二三年前写的东西,当时使用的第三方库和node.js的版本跟最新的可能有所不同甚至比较大的出入,所以大家在遇到问题的时候可能要多注意一下版本了,发邮件给我,也可能不会得到很准确的答复。
每一种编程语言都提供强制类型转换,允许你将某一种数据类型转换成另一种数据类型,AS3自然也不例外。但是虽然我编写了不少Flex程序,对 AS3中的强制类型转换还是不太清楚,以前AS中是这样进行强制类型转换的:假设有一个类叫做Class1,我们声明了一个它的对象 c1,如果想要将它转换成Class2类型,只要这样写:
之前一直以为as就是强制类型转换,只是as是AS3中新的语法,之前用在有继承关系的对象之间的转换也无甚区别,但是今天却让我领悟到了它俩之间的区别。
CrossBridge是Adobe FlasCC的开源版本,它提供了一个完整的C/C++开发环境,目的是把C/C++程序编译成Flash程序,运行于Flash Runtime之上。 CrossBridge前身为Alchemy,它提供了一个完整的类似于BSD的C/C++开发环境,基于GCC编译器,可以把C/C++源代码编译成目标Adobe Flash Runtimes程序。使用CrossBridge,可以把现有的大多数C/C++代码移植到Web上。
1.Sprite/MovieClip的Enter_Frame事件,不受addChild/removeChild影响 简单点讲:Sprite或MovieClip对象一旦为其添加了Enter_Frame事件监听,对应的Enter_Frame处理函数将会马上被调用,并一直执行下去(不管你是否将其addChild到显示列表,或者将其从显示列表removeChild),直到该对象removeEventListener相应的监听器为止。 同样:MovieClip一旦被new出来,就会自动播放(在未用任何代码stop()
说到File API,比如有意思就是图片上传了。国外有一个网站叫min.us 用户只需要把图片拖到网页面中,然后自己进行排序就OK了,很方便。
《传热学》相关小程序演示动画如下(其中下图1D非稳态导热计算发散,调小时间步长后重新计算,结果收敛!):
LayaAir引擎放弃Canvas原生API,并不等于放弃2D,而是为更好的发展2D和3D!那为什么要放弃Canvas原生API,以及LayaAir引擎未来的发展规划,这里我们来和大家聊一聊!
阅读本文前,如果不了解微信小游戏的基础创建流程和如何配置开发环境的,请先点击链接阅读《创建微信小游戏全流程介绍》或前往官网阅读LayaAir引擎官方技术文档,配置环境等基础内容本篇不再重复介绍。
本篇文章用来总结本人对AS3性能优化方面的认识及经验,可能会有一些错误,敬请不吝赐教.如果想了解更多,请参考ADOBE方面的相关只是介绍.
本文介绍了CrossBridge和Alchemy分别是什么,以及它们在Adobe Flash Player中的使用。CrossBridge是一个用于将C/C++代码编译成Flash Player插件的工具,而Alchemy是Adobe推出的一款用于创建高性能Flash Player插件的编译工具。使用CrossBridge和Alchemy可以将C/C++代码编译成Flash Player插件,从而在浏览器中运行。
在事件方法中,默认第一个参数是特殊变量$event,不管在模板中有没有通过greet($event)显式传递。
总得来说,我们可以先去live2D官网下载它的Unity SDK,然后即可在Unity中使用。我们这里使用的是live2d 2.1版。
领取专属 10元无门槛券
手把手带您无忧上云