如何二次开发 Scratch 2.0

SteveXMH大约 8 分钟ScratchActionScript编程

本文原本是发在 Scratch 贴吧open in new window 里的,但是因为比较凌乱所以正好开了博客就稍作整理之后发在这里了。

前言

你还在为 Flash Builder 的破解验证而烦恼吗? 你还在为 Flash Builder 的超长加载而感到心烦吗? 你还在为找不到 FlashDevelop 二次开发 Scratch 的教程而感到心累吗? 一切都结束了! 小萧经历千辛万苦终于集合了各位大佬的教程,成功的使用 FlashDevelop (以下简称FD)进行编译和 AIR 签名打包操作! 那么既然炫耀了(划掉)成功了结果,那么这里就开始告诉大家我的二次开发方式吧!

第一步:安装独立版 Flex SDK

注意:此步骤可能需要科学上网 如果你不喜欢使用安装器下载 Flex SDK,你可以直接从此处open in new window下载离线归档包

Flex SDK 用于对 Flash 或者 ActionScript 的包装和组合调试,包括我们待会要进行的 AIR 签名和包装也要在 Flex SDK 完成。 那么我们先前往 Apache Flex 官网来下载 Flex SDK Installer:http://flex.apache.org/installer.htmlopen in new window 当然,因为 Flash 和 AIR 引擎的更新换代,开发者需要自行选择安装的版本,所以我们下载的是安装器。 那么安装完毕后,你需要选择安装版本。 那么前往 Scratch 的 Github 源码库看看,最低支持 Flash 10.2 ,那么我们就选择这个版本,然后 Flex 和 AIR 的版本也会自动变更(这里小萧是选择了最新的版本来安装)。 那么下一步,你需要准备一个干净的文件夹(没有任何文件!)来存放 SDK,接着就开始下载了。 为什么我要先安装 Flex?因为这个玩意下的速度太##慢了

第二步:安装 Java

这个就不说了,链接在此open in new window 玩 MC 的就忽略此步

第三步:下载 FlashDevelop (FD)

在安装 Flex SDK 的期间,我们可以开始安装 FD 了 首先进入官网:点我进入open in new window 然后有个原谅色的下载按钮就可以进入论坛了 进入论坛往下翻就能找到“FlashDevelop *.*.* Setup”了 下载完之后,在安装组件步骤中选中中文语言(否则没有中文语言)

这下子你就可以选择好路径开始安装了~

第四步:配置 FlashDevelop

等待 SDK 安装完毕后,记住你存放 SDK 的文件夹,然后启动 FD,你可能会看到如下页面:

虽然我们在安装程序已经选中了中文组件,但是我们还是需要在设置中设置显示语言。 打开 Tools 菜单,打开 Program Settings:

在打开的设置里找到 Selected Locale 修改成 zh_CN 后重启即可 如果配置项太多,右上角有个过滤设置 Filter settings,搜索 locale 就找到了:

第五步:下载 Scratch 2.0 源代码

直接从 Scratch 2.0 源码库open in new window 下载即可(或者 直接点我下载压缩包open in new window) 下载完毕后先放着,下面会用到。

第六步:新建和配置工程

那么回到 FD ,我们要开始新建在 FD 的 Scratch 工程了。 首先点击“项目”菜单栏,找到“新建项目”并打开:

那么你打开的时候页面应该是这样的:

首先还是选择你喜欢的位置,名称也是随意的,包名留空。项目类型的话选择 "AIR AS3 Projector" 然后确定创建工程: 第一次创建工程的话会出现一点点模板配置,按自己喜好填写即可~ 那么我们看到右边的项目已经多出了一点东西,这个就是我们的工程目录了:

那么新建工程已经完毕,接下来我们需要进行部分的配置了。 首先还是在项目菜单栏里,找到底下的属性:

在里面一部分修改项是不能用的,需要在源码中修改才可以,那么首先打开 SDK 选项卡,找到“自定义 SDK”,把我们刚刚下载的独立 Flex SDK 路径填入:

那么再打开“编译器选项”选项卡,找到"Additional Compiler Options"(编译器参数选项),因为我们的 Scratch 源码有一部分常量需要在编译器启动时提供,源码内不提供,而且不提供这些常量的话 Scratch 反而还无法编译(WTH)。 所以点击省略号打开,填入以下内容:

-define+=SCRATCH::allow3d,false
-define+=SCRATCH::revision,'e267f37'

(注:如果你的 Flex SDK 中的 Flash Player 版本大于或等于 11.6 的话,你可以把 allow3d 的常量值修改为 true(虽然没啥用)) 这两个是必要内容,其他的教程会填入其他内容,这里就不需要了,最后应该是这样的:

第七步:转移源码到工程

配置工程完毕后,我们就要把 Scratch 的源代码合并到我们的工程里。 那么首先看到 FD 的工程目录,右键我们的工程,选择“资源管理器”打开工程文件夹:

将第五步下好的源码包解压,将其中的 libs 文件夹和 src 文件夹解压到工程目录内:

完成之后可以看到 FD 内的工程目录被刷新了:

因为原帖的问题,图里没有 libs 文件夹 :(
因为原帖的问题,图里没有 libs 文件夹 😦

接下来,我们要设置主运行程序,FD 默认会创建 Main.asopen in new window 作为第一个运行的程序。 但是在 Scratch 的源码中,Scratch.asopen in new window 才是主程序。 所以我们右击 Scratch.asopen in new window ,选择“设为文档类”(奇怪的翻译?),然后删除 Main.asopen in new window 即可(如果你不需要了的话):

然后将 Scratch 2.0 需要使用的几个库添加到库中,在工程浏览器中展开 libs 文件夹,将内部的 .swc 文件选中,右键选择 “添加到库”

第八步:调试和编译

终于要见到自己亲手编译的 Scratch 了(大开心) 首先我们看一下是否可以进行编译,这里是各种编译的方法:

  1. 点击蓝色的小箭头直接测试程序:
  1. 在项目菜单栏里点击“运行项目”或“编译项目”(这里不能真正打包成 AIR 程序):
  1. 按下 F5 或 F8 快速测试或编译

如果无法编译的话,请确定你的 Flex SDK 是否下载完整,并前往第一步重新安装。

最终结果应该是这样的:

倘若你能够打开上面的页面,恭喜你!你可以立即开始二次开发了! 但是如果你在调试的时候出错了的话,比如说出现这个错误:

如果出现了这个错误,请继续往下看 ↓

第八步·2:修正标识符

大家如果都下载了最新版本那么肯定会遇到如同上面的错误,虽然不知道原因,但是为了可以顺利编译,我们需要对其稍作修改以进行调试 首先还是来到工程文件夹,找到 application.xml 文件(这个步骤可以在 FD 操作),然后第二行就可以看到如上错误中出现的那个链接 我们要修改的就是这个链接尾巴的那串数字,实际上那个是 AIR 的版本号 如果这个版本号不和我们所用的 AIR 版本号一样的话,就会出现这个问题 所以如果你还记得 AIR 的版本的话就替换这个版本,那就直接替换版本号即可 但是如果你忘记了的话,就随我继续往下做: 打开你的 Flex SDK 目录,找到 bin 文件夹,这里你就可以找到 AIR 的调试启动器了:

右键,打开属性,在详细信息选项卡里你就能看到产品版本号了:

那么替换版本号,保存之后尝试编译一下,应该就成功了~

最终步:打包工程为 AIR 程序

当然最终我们是需要把它编译成发行版本的,只是自己玩算啥呢 那么为了可以打包成 AIR,我们首先需要一个签名文件,这个签名文件只需要生成一次就可以了(实际上每隔一年就需要重新生成一份) 而且为了方便,FD 为我们生成了一些 .bat 批处理文件来帮助我们打包和生成签名 这些批处理存放在你的工程文件夹中的 bat 文件夹里:

而下面的那个 .p12 文件就是我们待会需要的签名文件了 需要获取新的签名文件,直接双击 CreateCertificate.bat 运行批处理即可 生成完毕后就剩下最终的打包文件了 双击 PackageApp.bat 来全自动打包文件,稍等片刻后,在工程文件夹中的 air 文件夹里就会出现我们需要的 .air 打包文件了 唯一剩下的就是你如何去发布了~