HTML5入门指南

两天前,Robert Mening 给我发来邮件,告知我 [转]30余款HTML工具和教程 一文中的 EchoEcho.com 网站的内容太老,希望我能更新,并加入他的 HTML5 Beginner’s Guide

HTML5 Beginner’s Guide 的设计简洁,内容也是完全针对新手,有兴趣从头学习 HTML5 的话,可以根据他的教程对 HTML5 进行初步了解。

Robert 是个挺有趣的人,他在 About 页面中写道许多人在他的网站上线后给他发邮件,要他帮忙做网站,然后他委婉地拒绝了( I don’t have THAT much time to set it up for YOU)。这是意料之中的事,就和我在 一个项目开源到底有哪些考虑? 中说的一样,总有人想把你当免费劳力使唤,此事中外亦同。

Robert 提到的文章是六年前发布的,虽然我经常对旧文进行修改,但那篇文章是转载的,为了尊重原作者,我决定依然保留原文内容。

各视频站做到自动切换flash和html5播放器的难度有多大?

各视频站做到自动切换flash和html5播放器的难度有多大?

The difficulty of change video player from flash to html5.

这是一个知乎上的回答,原文在这里:http://www.zhihu.com/question/25259832/answer/30319472

问:

  1. 做到根据操作系统、浏览器或者用户自定义来使用不同的播放器是否有难度?
  2. 如果有难度,问题点在哪里?
  3. 如果不算难,为什么不做?

答:

判断操作系统和浏览器种类和版本,这个不难。

目前的主流平台一共5个:

桌面平台:

  • Windows(完美支持H5和 Flash Player)
  • Mac OS X(完美支持 H5和 Flash Player)
  • Linux(支持 H5,Flash Player支持到11.2,Chrome对 Flash Player 支持更好)

移动平台:

  • Android(支持 H5,Adobe已经放弃Flash Player支持)
  • iOS(支持 H5, 不支持 Flash Player)

继续阅读

在 iOS 7 中获取唯一标识符(UDID/UUID)

在 iOS 7 中获取唯一标识符(UDID/UUID)

Get unique identifer in iOS 7

在 iOS 5 中, 可以获取到系统的 UDID(Unique Device Identifier) ,后来被 Apple 禁止掉了。

于是,在 iOS 6 中,大家开始使用 MAC 地址 MAC(Medium/Media Access Control) ,后来又被 Apple 禁止掉了。

同样的,OpenUDID 也不能用了:

在 iOS 7 中,Apple 推荐使用广告标识符 advertisingIdentifier 来获取系统的唯一标识符。但是,用户如果重置了系统,广告标识符会重新生成。这就达不到 “唯一标识符” 的作用。

于是,在 iOS 7 中,程序员们发明了 “钥匙串保存” 方法,将这个唯一标识符保存在钥匙串中,安装了 App 后读取这个标识符即可。参见这里:ios 利用钥匙串保存密码和获取密码Simple iPhone Keychain Access

更详细的操作,可以参考这篇:如何使用KeyChain保存和获取UDID

下面这篇文章非常详细地介绍了 iOS 上获取唯一标识符的所有方式,以及相关知识,为了避免这么优秀的文章以后消失掉,我将其全文转载如下(已经很少全文转载了……)。 继续阅读

我们是否还应该支持 iOS 5?

我们是否还应该支持 iOS 5?

Must we support iOS 5 now?

游戏准备上线,纠结于一个API的支持问题。这个 API 从 iOS 6 开始支持。

那么,我们的游戏是否还要支持 iOS 5?

寻找了一些资料:

从腾讯的报告中可以看到,在2013年7月,iOS 6的占有率已经高达77%。

从今天 apple 的官方数据来看,iOS 7 的占用率已经达到91%,iOS 6 是8%,剩下的版本只有可怜的 1%。

iOS 占有率

As measured by the App Store during a 7‑day period ending August 24, 2014.

看来答案已经很清晰了。

Flash air 开发iOS游戏在苹果上架,能否热更新?

Flash air 开发iOS游戏在苹果上架,能否热更新?

这是我在知乎上的一个回答。原文地址:
http://www.zhihu.com/question/24847013/answer/29263899

我曾经多次被问到过这个问题。正好整理一下思路,免得以后忘了。

问:

游戏已经上架,以前的更新方案在苹果更新后,发现更新下来的swf不能正常读入,导致游戏无法进入。不知各位大神有没有什么方法解决。

答:

目前,在移动平台上想利用SWF热更新,只有 Android 能做到。 继续阅读

Python3 的异常处理

Python3 的异常处理

Exception in Python3.

Python3 的异常处理,在官方文档的 tutorial 中有说明。

这里把常用的异常处理方法都列出来,方便平时查找。

捕获异常基类

Python3 要求我们的异常必须继承 Exception 类。Built-in 的所有异常也都是继承自这个类。因此,我们只需要捕获这个类的实例,就可以捕获所有的异常。

继续阅读

删除 lua.ByteArray 中与 Long 相关的方法

删除 lua.ByteArray 中与 Long 相关的方法

Delete some methods about Long in lua.ByteArray.

用lua实现ByteArray和ByteArrayVarint 一文中,我介绍了用 lua+lpack+BitOp 实现的 ByteArray 模块,这个模块模仿 AS3 的ByteArray,给从Flash转到quick-cocos2d-x的程序员以亲切感。

这个模块被网友们找出了一些BUG,例如 这个这个这个 ,和 这个

今天,我将这些网友提出的问题一一做了确认和测试,发现有些并非BUG,而是理解有偏差。

但有个不是BUG的问题却可能造成重大的错误,那就是: 继续阅读

在 quick-cocos2d-x 中使用 DragonBonesCPP

在 quick-cocos2d-x 中使用 DragonBonesCPP

Using DragonBonesCPP in quick-cocos2d-x.

2014-07-31更新:三件事已经全部搞定,DragonBonesCPP已经推送到了quick-cocos2d-x 官方库。


1 前言

DragonBones 官方C++版本 for cocos2d-x 这篇文章中,我已经简单地介绍过了 DragonBonesCPP 这套用于取代 CCArmature 的库。

在我自己修改的 quick-cocos2d-x 版本中,我已经把 CCArmature 库删除,完全使用 DragonBonesCPP 。

我们的产品也完全使用 Flash 和 DragonBonesCPP 来制作骨骼动画。所有AS3版本的DragonBones提供的功能,在CPP版本中都能完整地实现。

几个月之前,我就已经将 DragonBonesCPP 整合到了quick-cocos2d-x 中,只是一直没有向官方库推送PR。这也是因为有几个内存泄露的BUG还没有解决。

现在,我终于有时间可以来做这件事。我的计划如下:

  1. 写一篇关于 DragonBonesCPP 的教程(quick专用哦);
  2. 解决 DragonBonesCPP 的遗留问题,并进一步封装lua api方便使用;
  3. 将 DragonBonesCPP 推送到quick的官方仓库。

那么,这篇文章就是第一件事了。 继续阅读

quick-cocos2d-x的热更新机制实现

quick-cocos2d-x的热更新机制实现

Hot update in quick-cocos2d-x

0 依赖

这里说的热更新,指的是客户端的更新。

大致的流程是,客户端在启动后访问更新api,根据更新api的反馈,下载更新资源,然后使用新的资源启动客户端,或者直接使用新资源不重启客户端。

这种方式可以跳过AppStore的审核,避免了用户频繁下载、安装、覆盖产品包。

我们一般使用这种方式快速修复产品BUG和增加新功能。

本文基于 quick-cocos2d-x zrong 修改版继续阅读

可能是一个程序员