Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

AS3 Upload a file

New Here ,
Dec 02, 2014 Dec 02, 2014

I'm new to AS3 and coding in general, but I followed a tutorial on how to create an audio recorder that I am using in a Captivate eLearning.

the default AS3 had the recorder start and stop on a mouse click. However, for my Captivate file, I needed the recorder to start on slide enter, and stop after a predetermined time. I was able to customize the code to accomplish that, but I need one last thing to happen. Right now, after the predetermined time is up, the user is prompted to save the file to their local computer. I need the code to direct the user to save the file to a web server instead of the local computer. Below is my code. Any assistance will help-

package

{

import flash.display.Sprite;

import flash.media.Microphone;

import flash.system.Security;

import org.bytearray.micrecorder.*;

import org.bytearray.micrecorder.events.RecordingEvent;

import org.bytearray.micrecorder.encoder.WaveEncoder;

import flash.events.MouseEvent;

import flash.events.Event;

import flash.events.ActivityEvent;

import fl.transitions.Tween;

import fl.transitions.easing.Strong;

import flash.net.FileReference;

import flash.utils.Timer;

import flash.events.TimerEvent;

public class Main3 extends Sprite

{

private var mic:Microphone;

private var waveEncoder:WaveEncoder = new WaveEncoder();

private var recorder:MicRecorder = new MicRecorder(waveEncoder);

private var recBar:RecBar = new RecBar();

private var tween:Tween;

private var fileReference:FileReference = new FileReference();

private var minuteTimer:Timer = new Timer(1000, 118);

public function Main3():void

{

recButton.stop();

activity.stop();

mic = Microphone.getMicrophone();

mic.setSilenceLevel(0);

mic.gain = 100;

mic.setUseEchoSuppression(true);

Security.showSettings("2");

addListeners();

}

private function addListeners():void

{

recButton.addEventListener(Event.ENTER_FRAME, startRecording);

recButton.addEventListener(TimerEvent.TIMER_COMPLE TE, stopRecording)

recorder.addEventListener(RecordingEvent.RECORDING , recording);

recorder.addEventListener(Event.COMPLETE, recordComplete);

activity.addEventListener(Event.ENTER_FRAME, updateMeter);

minuteTimer.addEventListener(TimerEvent.TIMER_COMP LETE, onTimerComplete);

minuteTimer.addEventListener(TimerEvent.TIMER_COMP LETE, stopRecording)

}

private function startRecording(e:Event):void

{

if (mic != null)

{

minuteTimer.start();

recorder.record();

e.target.gotoAndStop(2);

recButton.removeEventListener(Event.ENTER_FRAME, startRecording);

recButton.addEventListener(TimerEvent.TIMER_COMPLE TE, stopRecording)

addChild(recBar);

tween = new Tween(recBar,"y",Strong.easeOut, - recBar.height,0,1,true);

}

}

public function onTimerComplete(event:TimerEvent):void

{

trace("Time's Up!");

}

private function stopRecording(e:Event):void

{

recorder.stop();

mic.setLoopBack(false);

e.target.gotoAndStop(1);

recButton.addEventListener(TimerEvent.TIMER_COMPLE TE, stopRecording);

tween = new Tween(recBar,"y",Strong.easeOut,0, - recBar.height,1,true);

}

private function updateMeter(e:Event):void

{

activity.gotoAndPlay(100 - mic.activityLevel);

}

private function recording(e:RecordingEvent):void

{

var currentTime:int = Math.floor(e.time / 1000);

recBar.counter.text = String(currentTime);

if (String(currentTime).length == 1)

{

recBar.counter.text = "00:0" + currentTime;

}

else if (String(currentTime).length == 2)

{

recBar.counter.text = "00:" + currentTime;

}

}

private function recordComplete(e:Event):void

{

fileReference.save(recorder.output, "Name_Q1.wav");

}

}

}

TOPICS
ActionScript
441
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 02, 2014 Dec 02, 2014

you'll need to call a server-side executable (like a php file) using the urlloader class to do that for a web-based app.

but if this is an air app you can use the upload method of the file class.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 02, 2014 Dec 02, 2014

Thanks for the response.  No, this is not an air app.  Would you tell me more about the PHP file?  How would I put this in my code above?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 02, 2014 Dec 02, 2014
LATEST

here's some basic php file info, PHP Tutorial - File Upload

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines