iDom

关注HTML5 UI框架 Mobile 图形渲染

Mac下导出的绑定运行时AIR程序闪退的问题

这几天在测试AIR的运行时绑定功能,目标要导出桌面系统的AIR程序包。Windows是直接生成一个文件夹,双击里面的xxx.exe运行正常。而Mac下生成的是xxx.app的文件夹,但是在mac里直接显示成一个文件,双击启动总是闪退。经过不断的测试。发现跟磁盘分区格式可能有关系。 我的Mac是安装了双系统,所以有三个分区。两个系统,一个数据共享盘(NTFS格式)。Flash Builder...

写在EgretWing出来之前

剧透一下:经过我们软件工具团队的努力,Egret Wing应该会提早跟大家见面。第一个公开测试版预计会在两月后发布。在发布之前,为了让大家少走弯路,我感觉很有必要说明一件事:千万千万别直接从编辑器开始学Egret GUI。 先说一下Egret GUI的来历。这要先说FlexLite这个开源框架。详细信息可以参考这里:FlexLite游戏UI解决方案 简单说:FlexLite是基于Fle...

使用Chrome调试NodeJS脚本

1.首先在命令行执行npm以全局模式安装node-inspector插件: npm install -g node-inspector 2.然后用node命令执行需要调试的脚本,但是要加上–debug-brk参数,例如:node –debug-brk=5858 test.js 脚本现在就已经断点在了第一行,并且在等待5858端口的监听程序启动。 3.重启一个命令行窗口(注意是重启...

FlexLite Studio使用教程(二):素材资源管理

上一篇教程《FlexLite Studio使用教程(一):初始化编辑器》中,我们提到了FS是单独管理一套素材资源的,这里我们就来讨论下如何使用FS管理素材资源。 一.资源库面板 FS的“资源库”面板如下,界面比较简单,顶部是预览区域,预览区下方是影片剪辑预览按钮和搜索框。最下方是资源删除按钮和刷新资源库按钮。资源库以文件方式显示,一个文件可能包含多少素材。选中一项素材,可以直接拖拽素材到...

FlexLite Studio使用教程(一):编辑器初始化

自从FlexLite Studio(以下简称FS)发布后,一直被催着出教程。年底了有点忙,抱歉现在才开始写。由于内容比较多,预计会有很多篇,这是FS系列教程的第一篇。我想肯定有同学会问为什么不先出视频教程。总体来说,我认为看视频教程比较浪费时间。视频是种被动接受知识的方式(我已经在脑补你吃着薯片看我一行一行敲代码的情景),不像文章可以强调重点,30分钟的视频你无法知道那块内容可以跳过。图文教...

Flash Builder代码配色主题

分享一个自己用的Flash Builder配色主题:theme_domlib.zip,大号字体,深色背景,写代码不伤眼 :) 效果图如下: 同时支持Flash Builder4.6和4.7,使用方法很简单,点击”菜单”–>”导入”打开窗口后选择”首选项”,接着按提示导入即可。

FlexLite游戏UI解决方案

摘要:FlexLite是一个为游戏而生的轻量级UI框架,基于FLEX4 Spark架构高度精简优化而来,旨在为游戏开发提供一个更加高效的UI工作流。配套可视化编辑器FlexLite Studio已发布社区预览版。目前FlexLite的QQ交流群得到了270多位AS3开发者的加入,从发布至今,其中至少5个项目使用了这套框架。经过一年多的测试反馈,Bug几乎扫荡殆尽,功能也趋于完善。 一.游...

混淆SWF的另一种更安全更通用的思路

简单说下SWF文件的混淆原理,(已经明白的请跳过本段):我们的AS源代码被编译完成后,SWF内部会形成一个字符串映射表,包含源码里出现的所有字符串(类名,包名,成员变量名,常量等)。一个数字(相当于地址指针)对应一个全局唯一的字符串。而原本的代码片段包含的字符串都会被替换为对应的数字指针。代码实际执行过程用的都是这些数字指针。所以即使你修改了映射表内的字符串内容(不能修改Flash API的...

AIR实现重新启动程序的方法

代码非常简单: private function reboot():void { var mgr:ProductManager = new ProductManager("airappinstaller"); mgr.launch("-launch " + NativeApplication.nativeApplication.applicationID + " " + NativeA...

FlexLite框架解读(五):SystemManager

这段时间一直有童鞋询问框架初始化的问题。其实一句话就能说清楚:实例化一个SystemManager,然后把所有UI都放在它里面。SystemManager负责框架的初始化,它继承自Group,除了继承来的标准容器功能,它还增加了三个特殊职责:1.弹出框等层级管理功能;2.鼠标事件过滤;3.自动跟随舞台改变大小。下面分别描述: (1)通常层级管理都是采用多个子容器的方式来实现。如下图,Sys...

Flash中64位无符号整型的实现方法

跟后端socket通信经常会用到64位的无符号整型uint,通常用来表示用户id。但是Flash中的uint是32位的,Number也只能存储到53位。所以会存在溢出的可能。有两种解决方案,一种是让后端把id都存储成字符串。另一种是前端实现一个能够读取uint64的类。因为后端的大爷们通常不会接受字符串的方式。所以我们发扬下精神,写个类来兼容他们发过来的uint64吧。网上通常流传的一种实现...

游戏多语言版本的相关问题

这段时间负责多语言版本重构问题,折腾地焦头烂额的。奉劝各位有些东西一定不能拖,从项目开头就要设计好,什么先实现了再来修改都是鬼话。等到了有4000多个代码文件的时候,你就明白改起来有多蛋疼了。但是问题还是要解决的。根据项目实际情况分析,多语言要修改的地方,主要涉及三部分内容:1.代码里直接写入的中文。2.配置文件里的中文。3.UI素材上位图化的中文。 幸好项目中期我们费了点时间,把资源加载...

线上发行版捕获全局异常日志的方法

最近游戏快上线了。老板提了个需求。希望我们能把客户端的报错都记录下来,并存到服务器日志里。有很多线上的bug,在本地很难重现,如果能记录下来报错地方的调用堆栈。对调试就会很有帮助。也可以更加准确地分析出用户的留存率是否跟某个bug有关系,从而及时修复。 查了下API,loaderInfo有个uncaughtErrorEvents的属性,可以在上面监听到全局未处理(没有在try…catch里...

FlexLite框架解读(四):自动布局详解

前几篇教程下来,相信大部分童鞋都已经可以上手使用框架了。但是根据反馈的结果看,很多人都还是对自动布局这一块不太熟悉,尤其是调试的时候,无从下手。主要也是因为这块内容相关的用法比较零散,需要一定时间摸索总结才行。所以今天这篇教程,就花点力气在自动布局的总结上吧。这次的内容与Flex原理完全一致,所以面向Flex/FlexLite开发者都适用。即使你是Flex开发者,如果还没完全整明白自动布局,...

FlexLite框架解读(三):自定义皮肤

在这系列文章的第一篇《FlexLite框架解读(一):皮肤分离机制》里,我们详细介绍了下皮肤分离的原理。但是理论归理论,看完之后很多童鞋表示还是不明白怎么用到具体的组件上。那今天这篇就算是皮肤分离的实战吧,让我们一起来看看定制一个组件皮肤的过程。 :) 关于皮肤分离,上次UIPanelSkin.as的例子,已经说的很清楚了,这里再总结一下:就是把之前耦合的一个组件拆成两个,一个逻辑组件,一...

FlexLite框架解读(二):失效验证机制和自动布局

接上一篇文章内容,这次的主题是自动布局。很多纯AS程序员过渡到Flex/FlexLite时,最困惑的地方就是自动布局,而且困惑的时间会非常长。这是个看起来很便捷的功能,要是不得要领的话,布局出了问题,调试都无从下手。不仅是AS程序员,相信即使部分熟练使用Flex的程序员,也只是停留在用的层面,只知道它用起来非常方便,却并不了解内部的真正运行机制,调试起来还是力不从心。本文将详细过一遍自动布局...

FlexLite框架解读(一):皮肤分离机制

前言 我写文章总喜欢先加上一段前言,但我坦诚这里面大部分都是废话。由于时间紧张或怕罗嗦的童鞋,请跳本能地跳过这段,你应该没有任何损失。:) 这篇文章从标题看,应该会有一系列的后续文章,不出意外的话,会有的(出意外呢?凉拌)。从发布FlexLite开始,就不断有童鞋提建议。为啥不基于Flash Pro那套UI,据说也有失效验证机制啊;为啥要皮肤分离啊,直接在组件上写样式多直观;为啥要整出个...

聆听音乐,回归至简

我很早的时候就想写自己个音乐播放器,多早?上高中还不会编程的时候。那时候痴迷于iTunes的音乐管理功能。觉得有了这个东西后,一切都’井井有条’,听音乐也开始喜欢走’大而全’路线。要下载就要一次下载整个专辑。文件夹要命名规范。ID3标签要干净统一。很长一段时间忙于整理这个庞大的音乐数据库,乐此不疲。iTunes有很多高级功能,比如智能播放列表,即时显示的模糊搜索。音乐属性也非常多,统计的信息...

在Flex里让所有文本都使用FTE的方法

        在Flex4里,spark组件的文本都是使用FTE呈现的。但mx组件却是使用传统的TextFiled呈现的。这里先不讨论这两种文本引擎哪种更好。如果你想在Flex里嵌入字体的时候,就会因为这个问题遇到极大的麻烦。因为FTE和TextFiled使用的嵌入字体格式正好是相反的,并且互不兼容。参考链接:http://blog.csdn.net/tiangej/article/det...

压缩测试:LZMA vs ZLIB

Flash Player11.4之后提供了LZMA的压缩支持,网上一直说这种压缩格式压缩率比ZLIB高很多,解压快很多。我感觉好像不太科学,还是自己测试下比较靠谱。测试的时候同时加上了天地会上给的as版LZMA解压类(可以用于低版本的FP)。 package { import flash.display.Sprite; import flash.utils.ByteArray; im...