我正在使用AS3在Flash for Android中制作游戏。我希望用户知道他按下了一个按钮,让设备振动了一小段时间。有人可以向我解释我是如何实现这一目标的吗?我是否需要导入特定的类以及代码应该是什么样的?
提前致谢!
答案 0 :(得分:10)
要使用Vibration扩展,AIR应用程序将执行以下操作:
通过调用isSupported检查扩展是否受支持。 通过调用vibrate()使设备振动,指定振动的持续时间(以毫秒为单位)作为参数。
var vibe:Vibration;
if (Vibration.isSupported)
{
vibe = new Vibration();
vibe.vibrate(2000);
}
Android应用程序 对于Android应用程序,请在应用程序描述符文件中包含“振动”权限:
Android权限:<uses-permission android:name="android.permission.VIBRATE"/>
参考:http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/vibration.html
答案 1 :(得分:0)
感谢您的回答。他们让我对这个主题进行了更深入的研究。我发现的是:
在使用之前:
var vibe:Vibration;
if(Vibration.isSupported){
vibe = new Vibration();
vibe.vibrate(500);
}
您必须转到“编辑ActionScript设置”&gt; “Libary Path”&gt; “浏览到SWC文件”
你必须把这两个文件放在:
VibrationActionScriptLibary.swc - 你可以使用this zip文件
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”的文件夹中。如果您的图标位于此类文件夹中,只需将文件夹名称粘贴到命令行的末尾即可。
应用应该在您的项目文件夹中发布。
如果您对此有任何疑问,请务必观看我关联的视频。