Как я могу заставить свое устройство вибрировать?

Я делаю игру во Flash для Android с AS3. Я хочу, чтобы пользователь знал, что он нажал кнопку, заставив устройство вибрировать в течение короткой секунды. Может кто-нибудь объяснить мне, как я могу это сделать? Нужно ли импортировать определенный класс и как должен выглядеть код?

Заранее спасибо!


person David W    schedule 20.04.2012    source источник
comment
Мне пришлось +1 к этому вопросу, только из-за названия! :)   -  person weltraumpirat    schedule 20.04.2012


Ответы (2)


Чтобы использовать расширение Vibration, приложение AIR делает следующее:

Проверяет, поддерживается ли расширение, вызывая isSupported. Заставляет устройство вибрировать, вызывая vibrate(), указав продолжительность вибрации в миллисекундах в качестве параметра.

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

Приложения Android Для приложения Android включите разрешение Vibration в файл дескриптора приложения:

Разрешение Android: <uses-permission android:name="android.permission.VIBRATE"/>

Ссылка: http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/vibration.html

person Vinayak Bevinakatti    schedule 20.04.2012
comment
Если я добавлю это в свой код, он скажет, что тип :Vibration не найден или это не константа времени компиляции. - person David W; 20.04.2012
comment
Вам нужно включить ссылку как на ane, так и на swc в свой проект. Используете ли вы Flash Builder 4.6? - person J. Holmes; 20.04.2012
comment
Я просто использую Flash CS5.5. Чтобы проверить, работает ли это на моем телефоне, я публикую его с помощью Flash. - person David W; 20.04.2012

Спасибо за ответы. Они заставили меня немного глубже изучить эту тему. Я нашел следующее:

Прежде чем вы сможете использовать:

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

Вам нужно перейти в «Редактировать настройки ActionScript»> «Путь к библиотеке»> «Перейти к файлу SWC».

Там вы должны поместить эти 2 файла:

VibrationActionScriptLibary.swc — вы можете получить с помощью этого 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 не поддерживает то, что мы только что настроили. Однако мы все еще можем опубликовать .fla с помощью CMD (для 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) немного расплывчато, перейдите здесь и посмотрите его видео и его видео о том, как скомпилировать приложение ANE с помощью командной строки для вашей ОС. (Это то, что я сделал в первую очередь.)

Если у вас есть значок и для вашего приложения, убедитесь, что они находятся в папке с именем "icons" в папке вашего проекта. Если ваши значки находятся в такой папке, просто вставьте имя папки в конце командной строки.

Приложение должно быть опубликовано в папке ваших проектов.

Если у вас есть какие-либо вопросы по этому поводу, обязательно посмотрите видео, на которое я дал ссылку.

person David W    schedule 20.04.2012
comment
Вы должны опубликовать этот ответ как редактирование вашего вопроса, а не как ответ. Вы должны отдать должное @Vinayak.B за правильное решение, так как это правильное решение. Вы просили код, а не как подключить кодовую базу. Любой программист здесь предположит, что вы уже знаете, как реализовать код, или приложит все усилия, чтобы реализовать его. Таким образом, ваш ответ не самый правильный ответ на ваш вопрос. - person iND; 19.07.2012