2012-04-20 13 views
7

Estoy haciendo un juego en Flash para Android con AS3. Quiero que el usuario sepa que presionó un botón haciendo que el dispositivo vibre por un breve segundo. ¿Puede alguien explicarme cómo puedo hacer que esto suceda? ¿Debo importar una clase específica y cómo debería ser el código?¿Cómo puedo hacer que mi dispositivo vibre?

¡Gracias de antemano!

+0

Tuve que hacer +1 a esta pregunta, ¡solo por el título! :) – weltraumpirat

Respuesta

0

Gracias por las respuestas. Me hicieron investigar un poco más sobre este tema. Lo que encontré fue esto:

Antes de poder utilizar:

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

Tienes que ir a "Editar configuración de ActionScript"> "Path Libary"> "Explorar a archivo SWC"

Allí tiene que poner estos 2 archivo en:

VibrationActionScriptLibary.swc - Usted puede obtener con this archivo zip

com.ado be.extensions.Vibration.swc - En el mismo archivo zip y directorio. Tienes que cambiar el .ane a .swc

Luego tienes que import com.adobe.nativeExtensions.Vibration; Solo pon esa línea con las otras importaciones.

Esto fue todo lo que tiene que hacer en Flash. (Además de codificar el juego real ...)

A continuación, abra myApp-app.xml. En el xml, desplácese hacia arriba y compruebe si el enlace a ns.adobe.com finaliza con 3.0 (o superior). Si no, cámbialo a 3.0. Se requiere Adobe AIR 3.0 o superior para las extensiones nativas.

Desplácese hacia abajo hasta la parte donde ve <initialWindow>. Después de la etiqueta de cierre se agrega:

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

Si se desplaza más abajo debería ver algo como <android>. En manifestAdditions, debes agregar un permiso para que el dispositivo realmente permita que pueda usar la función de vibración.

Si todavía no hay una línea <![CDATA[manifest>, tiene que agregarlo. Si lo agregó/o si ya está allí, debe agregar el permiso.Esto se hace con android:name="android.permission.VIBRATE" Al final, usted quiere asegurarse de que se ve algo como esto:

<![CDATA[<manifest> 
    <uses-permission android:name="android.permission.VIBRATE"/> 
</manifest>]]> 

Después de esto puede guardar y cerrar el archivo XML.

Después de haber hecho todo esto, es posible que su archivo .fla no se publique en Flash, ya que Flash no es compatible con las cosas que acabamos de ajustar. Sin embargo, aún podemos publicar .fla con CMD (para Windows). Aquí también es donde mi apoyo para usuarios de Mac finaliza, lamentablemente. En cmd, navega a la carpeta de su proyecto. La carpeta de mi proyecto está en mi escritorio, así que escribí cd desktop, cd games, cd tilt android game. Después he echado un vistazo a mi carpeta que he escrito esta línea de comandos ...

AdobeAIRSDK\bin\adt -package -target apk -storetyp pkcs12 -keystore YOUR_LICENCE.p12 myApp.apk myapp-app.xml myapp.swf -extdir extensionDir 

Asegúrese de que tiene la carpeta AdobeAIRSDK en la carpeta del proyecto. Si todo lo anterior (con cmd) es un poco vago, vaya al here y vea su video y su video sobre cómo compilar una aplicación ANE con la línea de comandos para su sistema operativo. (Eso es lo que hice en primer lugar.)

Si tiene un ícono para su aplicación, asegúrese de que estén en una carpeta llamada "iconos" en su carpeta de proyectos. Si sus iconos están en dicha carpeta, simplemente pegue el nombre de la carpeta al final de la línea de comando.

La aplicación debe publicar en la carpeta de proyectos.

Si tiene alguna pregunta al respecto, asegúrese de ver el video que he vinculado.

+0

Debe publicar esta respuesta como una edición de su pregunta, y no como una respuesta. Debe darle crédito a @ Vinayak.B por la solución correcta, ya que es la solución correcta. Usted solicitó el código y * no * cómo conectar el código base. Cualquier programador aquí supondría que ya sabe cómo implementar el código o haría la debida diligencia para implementarlo. Entonces su respuesta es * no * la respuesta más correcta a su pregunta. – iND

10

utilizar la extensión de la vibración, una aplicación de AIR hace lo siguiente:

Comprueba si la extensión es compatible llamando isSupported. Hace que el dispositivo vibre llamando a vibrate(), especificando la duración de la vibración en milisegundos como parámetro.

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

aplicaciones Android Para una aplicación para Android, incluyen el permiso de la vibración en el archivo descriptor de la aplicación:

Permiso Android: <uses-permission android:name="android.permission.VIBRATE"/>

Referencia: http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/vibration.html

+0

Si agrego esto en mi código, dice que no se encontró el tipo de: Vibración, o no era una constante en tiempo de compilación. –

+0

Necesita incluir una referencia tanto al ane como al swc en su proyecto. ¿Estás usando Flash Builder 4.6? –

+0

Solo estoy usando Flash CS5.5. Para probar si funciona en mi teléfono lo publico con Flash. –

Cuestiones relacionadas