测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2017年10月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✗ |
由 Craig Grummitt 维护。
Swift 中的 ActionScript 3 SDK
Swift 真是太强大了 - 但你有没有怀念过 ActionScript 3.0 的那个年代?DisplayObjects、Sprites、MovieClips、EventDispatchers 的那个年代 - 以及谁会忘记 gotoAndPlay?现在,你可以利用 Swift 语法的力量享受原生 iOS 开发,但同时还使用 AS3 SDK!这怎么可能?这是异端吗?
ActionSwift3
在幕后,ActionSwift3 基于 SpriteKit 框架建立,但 ActionSwift 3 SDK 基于 AS3 SDK 的熟悉类
还包含了来自 这里 的便利缓动类。
API 文档可在 cocoadocs 上找到
您可以在 这里 找到一个教程 - Swift API for the Flash Guy。
ActionSwift 通过 CocoaPods 提供。要安装它,请将以下内容添加到您的 Podfile 中:(静态 Swift 框架需要 iOS 8)
别忘了将 Pod 引入到您想使用的 Pod 中
use_frameworks!
platform :ios, '8.0'
pod 'ActionSwift3'
或者,如果您想访问示例项目,可以克隆 GitHub 项目 这里。
import ActionSwift3
ActionSwift
ActionSwift 是一个您可以用来玩 ActionSwift3 的示例项目。从 GameViewController.swift 开始。
GameViewController 执行以下操作:
如何使用 ActionSwift3
以下是一些示例代码,可以帮助您了解如何使用 ActionSwift3。
Stage
首先,您需要在包含SKView的ViewController中设置场景。如果您的项目设置为Game-SpriteKit项目,则这项操作会自动为您完成。
let stage = Stage(self.view as! SKView)
Sprite
现在,您可以调用场景上的熟悉方法。例如,您可以实例化一个精灵,在其绘图属性上绘制一个矩形,然后将此精灵添加到场景中。
let sprite = Sprite()
sprite.graphics.beginFill(UIColor.redColor())
sprite.graphics.drawRect(10,10,100,44)
sprite.name = "shapes"
stage.addChild(sprite)
MovieClip
要创建影片剪辑,您需要在项目中包含一个名为“atlas”的文件扩展名文件夹内的图片(例如,“images.atlas”)。这将自动生成一个纹理图集。设置一个图片文件名数组的集合,并在实例化MovieClip时传递它们。这些现在将成为您的影片剪辑的“帧”,您可以调用熟悉的方法 - gotoAndPlay(),gotoAndStop(),stop()和play()。使用Stage.size来获取设备的尺寸。另外,x=0,y=0是场景的左上角。太棒了!
let walkingTextures = ["walking1","walking2","walking3"]
let movieClip = MovieClip(textureNames: walkingTextures)
movieClip.x = 0
movieClip.y = Stage.size.height - movieClip.height
stage.addChild(movieClip)
SimpleButton
您可以创建一个具有上和下状态的单按钮对象(在触摸屏上使用时,多余的状态没有太多意义!)您可以使用具有图形对象上形状的精灵或具有纹理的影片剪辑作为状态。
let play = SimpleButton(upState: playUpState, downState: playDownState)
stage.addChild(sprite)
TextField
使用熟悉的语法创建一个文本字段。使用TextField类构建文本字段的主体,然后再通过使用TextFormat类应用文本格式来对默认文本格式属性进行文本格式处理。
let text = TextField()
text.width = 200
text.text = "Salutations to you, world"
let textFormat = TextFormat(font: "ArialMT", size: 20, leading: 20, color: UIColor.blackColor(), align:.Center)
text.defaultTextFormat = textFormat
stage.addChild(text)
Sound
使用声音播放项目中包含的声音 - 但有一个很大的区别 - 现在,除了mp3之外还支持wav文件。《万岁!》循环音频或从文件中的某个点播放音频。根据奇特的AS3 API,使用SoundChannel停止声音。
sound = Sound(name: "ButtonTap.wav")
sound.play()
EventDispatcher
就像您预期的那样,Sprite、SimpleButton和MovieClip都会调度事件。由于Swift无法检查两个函数之间的等价性,因此除了EventHandler类外,还存储了EventHandler以及表示EventHandler的字符串,可以检查其等价性。例如,以下是如何设置enterFrame事件处理器的示例。
movieClip.addEventListener(EventType.EnterFrame.rawValue, EventHandler(enterFrame, "enterFrame"))
func enterFrame(event:Event) -> Void {
trace("This is called every frame")
}
跟踪
哦,对,跟踪又回来了!
trace("This is the most amazing thing I've ever seen, trace is back! How did they do this?")
增强功能
ActionSwift3是一个正在进行中的项目,欢迎您提出贡献!
增强功能的想法
更新
1.1
1.2
1.3
1.4
1.5
1.6
1.7
2.0
致谢