2012-04-20 89 views
7

我正在用AS3在Flash for Android上制作游戏。我希望用户知道他通过让设备在短时间内振动来按下按钮。有人可以向我解释我可以如何做到这一点?我需要导入一个特定的类,代码应该是什么样子?如何使设备振动?

在此先感谢!

+0

我必须+1这个问题,只是为了标题! :) – weltraumpirat 2012-04-20 08:46:24

回答

0

感谢您的答案。他们让我进一步研究这个问题。但是我发现了这一点:

之前,你可以使用:

var vibe:Vibration; 
if(Vibration.isSupported){ 
    vibe = new Vibration(); 
    vibe.vibrate(500); 
} 

你必须去“编辑ActionScript设置”>“Libary路径”>“浏览到SWC文件”

有你必须把这些文件2中:

VibrationActionScriptLibary.swc - 你可以用this zip文件

com.ado得到be.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发布.fla(适用于Windows)。可悲的是,这也是我对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应用程序的视频和视频。 (这就是我首先做的。)

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

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

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

+0

您应该将此答案发布为您的问题的编辑,而不是作为答案。您应该将@ Vinayak.B归功于正确的解决方案,因为它是正确的解决方案。您要求提供代码,而不是*如何连接代码库。这里的任何程序员都会假设你已经知道如何实现代码,或者会做尽职调查来实现它。所以你的答案是*不是你的问题的最正确答案。 – iND 2012-07-18 20:23:14

10

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

+0

如果我将它添加到我的代码中,它表示找不到类型:Vibration,或者它不是编译时常量。 – 2012-04-20 07:58:12

+0

您需要在项目中包含参考文献和参考文献。你使用Flash Builder 4.6吗? – 2012-04-20 10:11:06

+0

我只是使用Flash CS5.5。为了测试它是否适用于我的手机,我使用Flash发布它。 – 2012-04-20 10:16:48