Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package {
- import flash.display.Sprite;
- import flash.display.StageAlign;
- import flash.display.StageScaleMode;
- import flash.events.Event;
- import flash.events.MouseEvent;
- import flash.media.Sound;
- import flash.media.SoundChannel;
- import flash.text.TextFieldAutoSize;
- import flash.text.TextFormat;
- import flash.utils.*;
- import mx.utils.ObjectUtil;
- import qnx.events.QNXSystemEvent;
- import qnx.system.QNXSystem;
- import qnx.system.QNXSystemPowerMode;
- import qnx.ui.buttons.LabelButton;
- import qnx.ui.text.Label;
- import qnx.ui.text.TextInput;
- //-----------------------------------
- //
- [SWF(backgroundColor='#bbbbbb')]
- public class AlarmFreezing extends Sprite {
- public static const ALARM_TIMEOUT:int = 10 * 1000;
- private var note_text:TextInput;
- private var start_button:LabelButton;
- private var stop_button:LabelButton;
- private var time_display:Label;
- private var start_time:Date;
- private var timer_id:uint;
- // power mode when we're silent
- private var silentPowerMode:String;
- //-----------------------------------
- // main constructor for app
- //
- public function AlarmFreezing() {
- stage.align = StageAlign.TOP_LEFT;
- stage.scaleMode = StageScaleMode.NO_SCALE;
- silentPowerMode = QNXSystemPowerMode.STANDBY;
- QNXSystem.system.inactivePowerMode = silentPowerMode;
- addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
- addEventListener(Event.ACTIVATE, onActivate);
- addEventListener(Event.DEACTIVATE, onDeactivate);
- QNXSystem.system.addEventListener(QNXSystemEvent.ALARM, onAlarm);
- QNXSystem.system.setAlarm(ALARM_TIMEOUT, true); // periodic
- //~ QNXSystem.system.transitionTime = 1000;
- addEventListener(Event.ENTER_FRAME, onFrame);
- }
- //-----------------------------------
- //
- private function onAddedToStage(e:Event):void {
- note_text = new TextInput();
- note_text.text = '';
- note_text.width = 800;
- note_text.prompt = '(Enter text)';
- note_text.height = 50;
- addChild(note_text);
- start_button = new LabelButton();
- start_button.label = 'Start';
- start_button.enabled = true;
- addChild(start_button);
- stop_button = new LabelButton();
- stop_button.label = 'Stop';
- stop_button.enabled = false;
- addChild(stop_button);
- var fmt3:TextFormat = new TextFormat();
- //~ fmt3.font = 'Myriad Pro';
- fmt3.size = 48;
- fmt3.color = 0x009922;
- time_display = new Label();
- time_display.format = fmt3;
- time_display.text = 'stopped';
- time_display.autoSize = TextFieldAutoSize.LEFT;
- addChild(time_display);
- // ----------------
- // define layout
- start_button.x = 10;
- start_button.y = 10;
- stop_button.x = 200;
- stop_button.y = 10;
- note_text.x = 10;
- note_text.y = 120;
- time_display.x = 10;
- time_display.y = 200;
- // ----------------
- // define handlers
- start_button.addEventListener(MouseEvent.CLICK, onStart);
- stop_button.addEventListener(MouseEvent.CLICK, onStop);
- }
- //-----------------------------------
- //
- private function onFrame(e:Event):void {
- trace('frame', QNXSystem.system.powerMode, QNXSystem.system.inactivePowerMode);
- }
- //-----------------------------------
- //
- private function onActivate(e:Event):void {
- trace('activate', QNXSystem.system.powerMode, QNXSystem.system.inactivePowerMode);
- silentPowerMode = QNXSystemPowerMode.NORMAL;
- QNXSystem.system.powerMode = silentPowerMode;
- }
- //-----------------------------------
- //
- private function onDeactivate(e:Event):void {
- trace('deactivate', QNXSystem.system.powerMode, QNXSystem.system.inactivePowerMode, playing);
- silentPowerMode = QNXSystemPowerMode.STANDBY;
- if (!playing)
- QNXSystem.system.powerMode = silentPowerMode;
- }
- //-----------------------------------
- //
- private function onStart(e:Event):void {
- start_button.enabled = false;
- stop_button.enabled = true;
- time_display.text = '00:00';
- show_timer(new Date());
- }
- //-----------------------------------
- //
- private function onStop(e:Event):void {
- stop_button.enabled = false;
- start_button.enabled = true;
- pause_timer(0);
- }
- //-----------------------------------
- //
- public function show_timer(start_time:Date):void {
- timer_id = setInterval(onTimer, 1000); // testing to see effect of poorly chosen interval
- this.start_time = start_time;
- onTimer();
- }
- //-----------------------------------
- //
- public function pause_timer(elapsed:Number):void {
- clearInterval(timer_id);
- time_display.text = 'stopped';
- note_text.text = '';
- }
- //-----------------------------------
- //
- public function onTimer():void {
- var elapsed:int = (new Date()).valueOf() - start_time.valueOf();
- update_time(elapsed / 1000);
- }
- //-----------------------------------
- //
- public function update_time(elapsed:Number):void {
- var seconds:int = elapsed % 60;
- elapsed /= 60;
- var minutes:int = elapsed % 60;
- var hours:int = elapsed / 60;
- var text:String = '';
- if (hours)
- text = String(hours) + ':';
- if (minutes < 10)
- text += '0' + String(minutes) + ':';
- else
- text += String(minutes) + ':';
- if (seconds < 10)
- text += '0' + String(seconds);
- else
- text += String(seconds);
- time_display.text = text;
- }
- [Embed(source='warbly.mp3')]
- private var Asset_warbly:Class;
- private var sound_alarm:Sound = new Asset_warbly();
- //-----------------------------------
- //
- private var playing:Boolean;
- public function onAlarm(e:Event):void {
- trace('alarm', QNXSystem.system.powerMode, QNXSystem.system.inactivePowerMode);
- var mode:String = (silentPowerMode == QNXSystemPowerMode.STANDBY) ? QNXSystemPowerMode.THROTTLED : QNXSystemPowerMode.NORMAL;
- QNXSystem.system.inactivePowerMode = QNXSystemPowerMode.THROTTLED;
- QNXSystem.system.powerMode = mode;
- var chan:SoundChannel = sound_alarm.play();
- playing = true;
- chan.addEventListener(Event.SOUND_COMPLETE, onReminderSoundComplete);
- }
- //-----------------------------------
- //
- public function onReminderSoundComplete(e:Event):void {
- trace('alarm done');
- playing = false;
- QNXSystem.system.powerMode = silentPowerMode;
- QNXSystem.system.inactivePowerMode = QNXSystemPowerMode.STANDBY;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement