【问题标题】:How can I make my device vibrate?如何让我的设备振动?
【发布时间】:2013-01-18 11:19:36
【问题描述】:

我正在使用 AS3 为 Android 制作 Flash 游戏。我希望用户通过让设备振动片刻来知道他按下了一个按钮。有人可以向我解释我怎样才能做到这一点吗?我需要导入特定的类吗?代码应该是什么样的?

提前致谢!

【问题讨论】:

  • 我必须 +1 这个问题,只是为了标题! :)

标签: android actionscript-3 flash device vibration


【解决方案1】:

要使用振动扩展,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

【讨论】:

  • 如果我将它添加到我的代码中,它会说找不到:Vibration 的类型,或者它不是编译时常量。
  • 您需要在您的项目中包含对 ane 和 swc 的引用。您使用的是 flash builder 4.6 吗?
  • 我只是在使用 Flash CS5.5。为了测试它是否适用于我的手机,我使用 Flash 发布它。
【解决方案2】:

感谢您的回答。他们让我对这个主题进行了更深入的研究。我发现是这样的:

在您可以使用之前:

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。本机扩展需要 Adob​​e AIR 3.0 或更高版本。

进一步向下滚动到您看到<initialWindow> 的部分。在结束标记之后添加:

<extensions>
    <extensionID>com.adobe.Vibration</extensionID>
</extensions>

如果您进一步向下滚动,您应该会看到类似&lt;android&gt; 的内容。在 manifestAdditions 中,您必须为设备添加一个权限,以使其真正允许它可以使用振动功能。

如果那里还没有&lt;![CDATA[manifest&gt; 行,则必须添加它。如果您添加了它/或者它已经存在,您必须添加权限。这是通过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

确保您的项目文件夹中有 Adob​​eAIRSDK 文件夹。如果上述所有内容(使用 cmd)有点模糊,请转到 here 并观看他的视频和他的视频,了解如何使用操作系统的命令行编译 ANE 应用程序。 (这就是我最初所做的。)

如果您的应用有图标,请确保它们位于项目文件夹中名为“icons”的文件夹中。如果您的图标位于此类文件夹中,只需将文件夹名称粘贴到命令行末尾即可。

应用应该在您的项目文件夹中发布。

如果您对此有任何疑问,请务必观看我链接的视频。

【讨论】:

  • 您应该将此答案发布为对您问题的编辑,而不是作为答案。您应该将正确的解决方案归功于@Vinayak.B,因为它是正确的解决方案。您要求提供代码,而不是如何连接代码库。这里的任何程序员都会假设您已经知道如何实现代码,或者会尽职尽责地实现它。所以你的答案不是对你的问题最正确的答案。
猜你喜欢
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2011-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
  • 2019-11-04
相关资源
最近更新 更多