【发布时间】:2013-01-18 11:19:36
【问题描述】:
我正在使用 AS3 为 Android 制作 Flash 游戏。我希望用户通过让设备振动片刻来知道他按下了一个按钮。有人可以向我解释我怎样才能做到这一点吗?我需要导入特定的类吗?代码应该是什么样的?
提前致谢!
【问题讨论】:
-
我必须 +1 这个问题,只是为了标题! :)
标签: android actionscript-3 flash device vibration
我正在使用 AS3 为 Android 制作 Flash 游戏。我希望用户通过让设备振动片刻来知道他按下了一个按钮。有人可以向我解释我怎样才能做到这一点吗?我需要导入特定的类吗?代码应该是什么样的?
提前致谢!
【问题讨论】:
标签: android actionscript-3 flash device vibration
要使用振动扩展,AIR 应用程序执行以下操作:
通过调用 isSupported 检查扩展是否支持。 通过调用 vibrate() 使设备振动,以毫秒为单位指定振动的持续时间作为参数。
var vibe:Vibration;
if (Vibration.isSupported)
{
vibe = new Vibration();
vibe.vibrate(2000);
}
Android 应用程序 对于 Android 应用程序,在应用程序描述符文件中包含振动权限:
安卓权限:<uses-permission android:name="android.permission.VIBRATE"/>
参考:http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/vibration.html
【讨论】:
感谢您的回答。他们让我对这个主题进行了更深入的研究。我发现是这样的:
在您可以使用之前:
var vibe:Vibration;
if(Vibration.isSupported){
vibe = new Vibration();
vibe.vibrate(500);
}
您必须转到“编辑 ActionScript 设置”>“库路径”>“浏览到 SWC 文件”
你必须把这两个文件放进去:
VibrationActionScriptLibary.swc - 您可以通过this 获取 压缩包
com.adobe.extensions.Vibration.swc - 在同一个 zip 文件和目录中。您必须将 .ane 更改为 .swc
接下来你必须 import com.adobe.nativeExtensions.Vibration; 把那行和其他导入一起放。
这就是您在 Flash 中所要做的一切。 (除了编写实际游戏的代码......)
接下来,打开 myApp-app.xml。 在 xml 中,向上滚动并检查指向 ns.adobe.com 的链接是否以 3.0(或更高版本)结尾。如果没有,请将其更改为 3.0。本机扩展需要 Adobe AIR 3.0 或更高版本。
进一步向下滚动到您看到<initialWindow> 的部分。在结束标记之后添加:
<extensions>
<extensionID>com.adobe.Vibration</extensionID>
</extensions>
如果您进一步向下滚动,您应该会看到类似<android> 的内容。在 manifestAdditions 中,您必须为设备添加一个权限,以使其真正允许它可以使用振动功能。
如果那里还没有<![CDATA[manifest> 行,则必须添加它。如果您添加了它/或者它已经存在,您必须添加权限。这是通过android:name="android.permission.VIBRATE" 完成的,最后你要确保它看起来像这样:
<![CDATA[<manifest>
<uses-permission android:name="android.permission.VIBRATE"/>
</manifest>]]>
之后,您可以保存并关闭 xml 文件。
在您完成所有这些操作后,您的 .fla 可能无法在 Flash 中发布,因为 Flash 不支持我们刚刚调整的内容。但是,我们仍然可以使用 CMD(适用于 Windows)发布 .fla。遗憾的是,这也是我对 Mac 用户的支持结束的地方。在 cmd 中,您浏览到您的项目文件夹。我的项目文件夹在我的桌面上,所以我输入了cd desktop、cd games、cd tilt android game。在我浏览到我的文件夹后,我输入了这个命令行......
AdobeAIRSDK\bin\adt -package -target apk -storetyp pkcs12 -keystore YOUR_LICENCE.p12 myApp.apk myapp-app.xml myapp.swf -extdir extensionDir
确保您的项目文件夹中有 AdobeAIRSDK 文件夹。如果上述所有内容(使用 cmd)有点模糊,请转到 here 并观看他的视频和他的视频,了解如何使用操作系统的命令行编译 ANE 应用程序。 (这就是我最初所做的。)
如果您的应用有图标,请确保它们位于项目文件夹中名为“icons”的文件夹中。如果您的图标位于此类文件夹中,只需将文件夹名称粘贴到命令行末尾即可。
应用应该在您的项目文件夹中发布。
如果您对此有任何疑问,请务必观看我链接的视频。
【讨论】: