Craig Grummitt

3 个组件

ActionSwift3

ActionSwift logo

Swift 令人赞叹 - 不过你有没有怀念过 ActionScript 3.0 的那些日子?那些 MovieClips、DisplayObjects、Sprites、SimpleButtons、EventDispatchers 的日子 - 还有谁会忘记 gotoAndPlay 呢?现在你可以使用 Swift 语法来享受 iOS 自带开发,但是使用 AS3 SDK!哇?这是怎么做到的?这是异端吗?

ActionSwift3

在底层,ActionSwift3 基于 SpriteKit 框架,但 ActionSwift 3 SDK 基于 AS3 SDK 的常用类。

  • DisplayObject
  • InteractiveObject
  • DisplayObjectContainer
  • Sprite
  • Graphics
  • Stage
  • MovieClip
  • SimpleButton
  • TextField
  • TextFormat
  • Sound
  • SoundChannel
  • EventDispatcher
  • Event
  • EventHandler
  • Touch
  • TouchEvent(在触摸环境中,TouchEvent 比 MouseEvent 更有意义的用法)

还包含了一些便利的 Easing 类,来自 这里

API 文档可以在 cocoadocs 中找到。

安装

ActionSwift 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

ruby pod "ActionSwift3"

不要忘记在您要使用它的 Pod 中导入

Swift import ActionSwift3

或者,如果您想同时访问示例项目,请克隆 GitHub 项目 这里

ActionSwift

ActionSwift 是一个示例项目,您可以使用它来尝试使用 ActionSwift3。从查看 GameViewController.swift 开始。GameViewController 执行以下操作

  1. 设置舞台。
  2. 创建一个 'play' Sprite,其中包含一个三角形。
  3. 创建一个 'stop' Sprite,其中包含一个矩形。
  4. 创建一个电影剪辑,显示由字符串数组定义的纹理,这些字符串引用了 'images.atlas' 文件夹中的图像。
  5. 展示如何通过设置所有三个 Sprite 的事件监听器来创建事件监听器。停止和播放 Sprite 会停止和播放电影剪辑。触摸电影剪辑会激活拖放操作。

Screenshot

如何使用 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仍在开发中,欢迎贡献力量!

增强建议

  • 日期
  • XML
  • 在图形上添加更复杂的形状

更新

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更新

致谢

  • “行走动画”由Kyoux创作
  • “ActionScript”由Adobe Systems Inc.提供
  • “Swift”由Apple Inc.提供
  • “Swift图标”由Apple Inc.提供

许可证:MIT

  • Swift

GEDCOMConverter

使用GEDCOMConverter,将GEDCOM文件解析为原生Swift对象太简单了!

只需创建一个GEDCOM对象,传入GEDCOM文件的名称:let gedcom = try GEDCOM(fileName:"sample")

GEDCOM对象将自动生成一个head以及数据数组的individualsfamiliessour

许可证:MIT

  • Swift

SpriteKitEasingSwift

为SpriteKit的Swift提供更好的缓动效果。这个缓动库最初是buddingmonkey的Objective C SpriteKit缓动库的Swift移植。这个库通过扩展在Apple的SpriteKit框架中可用的基本缓动方程而来。

许可证:MIT

  • Swift