Craig Grummitt

3 个组件
Swift 令人赞叹 - 不过你有没有怀念过 ActionScript 3.0 的那些日子?那些 MovieClips、DisplayObjects、Sprites、SimpleButtons、EventDispatchers 的日子 - 还有谁会忘记 gotoAndPlay 呢?现在你可以使用 Swift 语法来享受 iOS 自带开发,但是使用 AS3 SDK!哇?这是怎么做到的?这是异端吗?
ActionSwift3
在底层,ActionSwift3 基于 SpriteKit 框架,但 ActionSwift 3 SDK 基于 AS3 SDK 的常用类。
还包含了一些便利的 Easing 类,来自 这里。
API 文档可以在 cocoadocs 中找到。
ActionSwift 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
ruby pod "ActionSwift3"
不要忘记在您要使用它的 Pod 中导入
Swift import ActionSwift3
或者,如果您想同时访问示例项目,请克隆 GitHub 项目 这里。
ActionSwift
ActionSwift 是一个示例项目,您可以使用它来尝试使用 ActionSwift3。从查看 GameViewController.swift 开始。GameViewController 执行以下操作
如何使用 ActionSwift3
以下是一些示例代码,可以帮助您了解如何使用 ActionSwift3。
Stage
首先,您需要在包含 SKView 的 ViewController 中设置 Stage。如果您设置了 Game-SpriteKit 项目,这将为您自动完成
Swift let stage = Stage(self.view as! SKView)
Sprite
现在您可以在舞台上调用熟悉的方法。例如,您可以实例化一个 Sprite,在其 graphics 属性上绘制一个矩形,然后将该 Sprite 添加到舞台上
Swift let sprite = Sprite() sprite.graphics.beginFill(UIColor.redColor()) sprite.graphics.drawRect(10,10,100,44) sprite.name = "shapes" stage.addChild(sprite)
MovieClip
要创建电影剪辑,您需要在项目中某个文件夹中包含扩展名为 'atlas' 的图像。这会自动生成 Texture Atlas。设置这些图像文件名数组,并在实例化 MovieClip 时传入。这些将现在成为您的电影剪辑的 '帧',您将能够调用熟悉的方法 - gotoAndPlay()、gotoAndStop()、stop() 和 play()。使用 Stage.size 获取设备的尺寸。哦,而且 x=0, y=0 是舞台的左上角。太好了!
Swift let walkingTextures = ["walking1","walking2","walking3"] let movieClip = MovieClip(textureNames: walkingTextures) movieClip.x = 0 movieClip.y = Stage.size.height - movieClip.height stage.addChild(movieClip)
SimpleButton
您可以创建一个 SimpleButton 对象,带有上状态和下状态(在触摸屏上不需要太多过度状态!)您可以使用带有 graphics 对象上形状的 Sprite 或使用纹理的电影剪辑作为状态。
Swift let play = SimpleButton(upState: playUpState, downState: playDownState) stage.addChild(sprite)
TextField
使用熟悉的语法创建一个文本字段。使用TextField类构建文本字段的基件,然后使用TextFormat类将文本格式应用到defaultTextFormat属性。
```Swift let text = TextField() text.width = 200 text.text = "向世界问好"```
let textFormat = TextFormat(font: "ArialMT", size: 20, leading: 20, color: UIColor.blackColor(), align:.Center) text.defaultTextFormat = textFormat
stage.addChild(text) ```
Sound
使用声音播放项目中包含的声音 - 一个巨大的区别是 - 现在支持wav和mp3文件。太好了! 循环音频或从文件中的某个点播放。按照奇特的AS3 API,使用SoundChannel来停止声音。
Swift sound = Sound(name: "ButtonTap.wav") sound.play()
EventDispatcher
如你所预期,Sprite、SimpleButton和MovieClip将派发事件。由于Swift无法检查两个函数之间的相等性,因此一个名为'EventHandler'的附加类存储了EventHandler,以及表示EventHandler的字符串,这些字符串可以进行相等性检查。例如,以下是如何设置enterFrame事件处理器的示例
Swift movieClip.addEventListener(EventType.EnterFrame.rawValue, EventHandler(enterFrame, "enterFrame")) func enterFrame(event:Event) -> Void { trace("这会在每一帧被调用") }
trace
是的,trace又回来了!
Swift trace("这是我见过的最神奇的事情,trace又回来了!他们是怎么做到的?")
增强功能
ActionSwift3仍在开发中,欢迎贡献力量!
增强建议
更新
1.1 * 添加int和Boolean数据类型
1.2 * 添加TextField * 解决了舞台更新无法传播的问题 * 添加了许可证
1.3 * 添加SimpleButton * 为UIColor添加了十六进制支持扩展
1.4 * 添加Sound,SoundChannel
1.5 * 为Swift 2更新
1.6 * 解决了标签无法注册点击的问题 * 解决了旋转问题
1.7 * 为Swift 2.3更新
2.0 * 为Swift 3.0更新
致谢
许可证:MIT
使用GEDCOMConverter,将GEDCOM文件解析为原生Swift对象太简单了!
只需创建一个GEDCOM
对象,传入GEDCOM文件的名称:let gedcom = try GEDCOM(fileName:"sample")
GEDCOM
对象将自动生成一个head
以及数据数组的individuals
、families
和sour
。
许可证:MIT
为SpriteKit的Swift提供更好的缓动效果。这个缓动库最初是buddingmonkey的Objective C SpriteKit缓动库的Swift移植。这个库通过扩展在Apple的SpriteKit框架中可用的基本缓动方程而来。
许可证:MIT