flash : clean interface.
authorcavaliet
Tue, 05 Jun 2012 13:51:02 +0200
changeset 8 84aba7419b17
parent 7 c594db80ccee
child 9 4763bcd087a2
flash : clean interface.
script/record_mic/record_mic.as
script/record_mic/record_mic.swf
script/record_mic/record_mic/DOMDocument.xml
script/record_mic/record_mic/LIBRARY/StopBtn.xml
script/record_mic/record_mic/META-INF/metadata.xml
script/record_mic/record_mic/bin/SymDepend.cache
--- a/script/record_mic/record_mic.as	Tue Jun 05 12:49:37 2012 +0200
+++ b/script/record_mic/record_mic.as	Tue Jun 05 13:51:02 2012 +0200
@@ -1,1 +1,1 @@
-package  {
	
	import flash.events.MouseEvent;
	import flash.events.NetStatusEvent;
	import flash.events.IOErrorEvent;
	import flash.events.SecurityErrorEvent;
	import flash.events.AsyncErrorEvent;
	import flash.events.ErrorEvent;
	import flash.events.ActivityEvent;
	import flash.events.Event;
	
	import flash.display.MovieClip;
	import flash.display.SimpleButton;
	import flash.display.Sprite;
	
	import flash.text.TextField;
	
	import flash.system.Security;
	
	import flash.media.Microphone;
	
	import flash.net.NetConnection;
	import flash.net.NetStream;
	
	import flash.utils.getTimer;
	
	import fl.controls.ProgressBar;
	import fl.controls.ProgressBarDirection;
	import fl.controls.ProgressBarMode;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import fl.controls.Slider;
	import fl.events.SliderEvent;
	
	public class record_mic extends MovieClip {
		
		private var t:TextField;
		private var r:SimpleButton;
		private var s:Sprite;
		private var p:Sprite;
		
		private var urlServer:String = "rtmp://media.iri.centrepompidou.fr/ddc_micro_record";
		private var nc:NetConnection;
		private var ns:NetStream;
		private var ns2:NetStream;
		private var mic:Microphone;
		private var filename:String;
		private var recordStopped:Boolean = false;
		
		// Draw mic feedback
		private var pb:ProgressBar;
		private var activityCurve:Sprite;
		private var micGain:Slider;
		// Variables for the activity curve
		private var xInc:int = 0;
		private var xSpeed:int = 2;
		private var activityWidth:Number;
		// Intervals used to draw the curve et keep track of the duration of the recording
		private var drawCurve:Number;
		private var timecodeInterval:Number;
		private var timecode:Number = 0;
		
		
		public function record_mic() {
			// constructor code
			Security.allowDomain("*");
			Security.allowInsecureDomain("*");
			
			//t = _t;
			r = _recordBtn;
			s = _stopBtn;
			p = _playBtn;
			pb = _pb;
			activityWidth = _act.width;
			activityCurve = _act._activityCurve;
			micGain = _micGain;
			trace("t = " + t + ", r = " + r + ", s = " + s + ", p = " + p + ", pb = " + pb);
			
			//r.buttonMode = r.useHandCursor = 
			s.buttonMode = s.useHandCursor = p.buttonMode = p.useHandCursor = true;
			pb.mode = ProgressBarMode.MANUAL;
			r.addEventListener(MouseEvent.CLICK, startRecord);
			s.addEventListener(MouseEvent.CLICK, stopRecord);
			p.addEventListener(MouseEvent.CLICK, playRecord);
		}
		private function startRecord(e:MouseEvent=null):void{
			trace("startRecord nc = " + nc);
			if (nc==null){
				trace("  startRecord 2");
				nc = new NetConnection();
				nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler, false, 0, true);
				nc.addEventListener(IOErrorEvent.IO_ERROR, errorHandler, false, 0, true);
				nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler, false, 0, true);
				nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandler, false, 0, true);    	
				nc.connect(urlServer);
			}
			else{
				publish();
			}
		}
		private function errorHandler(e:*=null):void {
			trace("errorHandler");
        	closeStream();
        }
		private function closeStream():void{
			trace("closeStream");
			if(ns!=null){
				trace("  ns.close()");
        		ns.close();
        		ns = null;
			}
		}
		private function netStatusHandler(event:NetStatusEvent):void {
			trace("netStatusHandler : " + event.info.code);
        	switch (event.info.code) {
	        	case 'NetConnection.Connect.Success':
					publish();
	        		break;
	        	case 'NetConnection.Connect.Failed':
	        	case 'NetConnection.Connect.Reject':
	        	case 'NetConnection.Connect.Closed':
	        		//closeStream();
	        		break;
        	}
        }
		// send data over rtmp
		private function publish():void {
			trace("publish (ns==null && nc!=null && nc.connected) = " + (ns==null && nc!=null && nc.connected));
			if(nc!=null && nc.connected) {
				trace("  publish 2");
				ns = new NetStream(nc);
				ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler, false, 0, true);
				ns.addEventListener(IOErrorEvent.IO_ERROR, errorHandler, false, 0, true);
				ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandler, false, 0, true);
				// informs the server to record what it receives
				// in fact file name is passed as the user name (the server is meant to record everything it has to in a file named from the user name)	
				filename = "r_" + now();
				trace("filename = " + filename);
				ns.publish(filename, 'record');
				mic = Microphone.getMicrophone(-1);
				mic.rate = 22;
				micGain.minimum = 0;
				micGain.maximum = 100;
				micGain.value = mic.gain = 50;
				micGain.addEventListener(SliderEvent.CHANGE, onSliderChange);
				//			mic.addEventListener(ActivityEvent.ACTIVITY, activity);
				mic.addEventListener(ActivityEvent.ACTIVITY, runMicActivity);
				mic.setUseEchoSuppression(true);
				ns.attachAudio(mic);
			}
		}
		// stop the recording of audio to the stream
		private function stopRecord(e:*=null):void{
			trace("stopRecord (ns!=null) = " + (ns!=null));
			if(ns!=null){
				trace("  stopRecord 2");
				recordStopped = true;
				ns.play(false); // flushes the recording buffer
    			ns.close();
			}
		}
		// plays back the audio that was recorded
		private function playRecord(e:*=null):void{
			trace("playRecord (ns!=null && recordStopped) = " + (ns!=null && recordStopped));
			if(recordStopped){
				trace("  playRecord 2");
				ns2 = new NetStream(nc);
				ns2.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler2, false, 0, true);
				ns2.addEventListener(IOErrorEvent.IO_ERROR, errorHandler2, false, 0, true);
				ns2.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandler2, false, 0, true);
				ns2.play(filename);
			}
		}
		private function netStatusHandler2(event:NetStatusEvent):void {
			trace("netStatusHandler 2 : " + event.info.code);
        }
		private function errorHandler2(e:*=null):void {
			trace("errorHandler 2");
        	closeStream2();
        }
		private function closeStream2():void{
			trace("closeStream 2");
			/*if(ns2!=null){
				trace("  ns.close()");
        		ns2.close();
        		ns2 = null;
			}*/
		}
		// Now in string
		private function now():String{
			var d:Date = new Date();
			var m:uint = d.month + 1; // because Date.month begins at 0
			return d.fullYear + (m<10?("0"+m):m) + (d.date<10?("0"+d.date):d.date) + (d.hours<10?("0"+d.hours):d.hours) + (d.minutes<10?("0"+d.minutes):d.minutes) + (d.seconds<10?("0"+d.seconds):d.seconds);
		}
		
		// sets the module ready to record mic activity changes
		private function runMicActivity(event:ActivityEvent):void {
			trace("runMicActivity");
			addEventListener(Event.ENTER_FRAME, showMicActivity);
			// Start activity curve feedback, every second
			activityCurve.graphics.clear();
			activityCurve.graphics.lineStyle(1, 0xc4c4c4, 1);
			activityCurve.graphics.moveTo(0, 20);
			activityCurve.graphics.beginFill(0xc4c4c4, 100);
			xInc = 0;
			activityCurve.x = 1;
			var tmr:Timer = new Timer(1000, 1000);
			tmr.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
			tmr.addEventListener(TimerEvent.TIMER, drawSoundCurve);
			tmr.start();
		}
		// updates the progress bar relating to mic activity
		private function showMicActivity(e:Event):void {
			//trace("showMicActivity res = " + (mic.activityLevel*mic.gain/100));
			//pb.setProgress(mic.activityLevel*mic.gain/100 ,100);
			pb.setProgress(mic.activityLevel,100);
		}
		// updates the actiity curve relating to mic activity
		private function drawSoundCurve(e:TimerEvent):void {
			trace("drawSoundCurve mic.activityLevel =  " + mic.activityLevel + ", mic.gain = " + mic.gain + ", h = " + (19*mic.activityLevel/100));
			activityCurve.graphics.lineTo(xInc, 19 - (19*mic.activityLevel/100));	
			activityCurve.graphics.lineTo(xInc, 19);
			if(xInc>activityWidth){
				activityCurve.x -= xSpeed;
			}
			xInc += xSpeed;
		}
		private function onTimerComplete(e:TimerEvent):void {
			trace("onTimerEnd");
		}
		// Updates mic gain
		private function onSliderChange(e:SliderEvent):void {
			trace("onSliderChange");
			mic.gain = micGain.value;
		}
		
	}
	
}
\ No newline at end of file
+package  {
	
	import flash.display.MovieClip;
	import flash.display.SimpleButton;
	import flash.display.Sprite;
	
	import flash.events.MouseEvent;
	import flash.events.NetStatusEvent;
	import flash.events.IOErrorEvent;
	import flash.events.SecurityErrorEvent;
	import flash.events.AsyncErrorEvent;
	import flash.events.ErrorEvent;
	import flash.events.ActivityEvent;
	import flash.events.Event;
	//import flash.events.TimerEvent;
	
	import flash.media.Microphone;
	
	import flash.net.NetConnection;
	import flash.net.NetStream;
	
	import flash.system.Security;
	
	import flash.text.TextField;
	
	//import flash.utils.Timer;
	
	import fl.controls.ProgressBar;
	import fl.controls.ProgressBarMode;
	import fl.controls.Slider;
	import fl.events.SliderEvent;
	import flash.utils.setInterval;
	
	public class record_mic extends MovieClip {
		
		private var t:TextField;
		private var r:SimpleButton;
		private var p:Sprite;
		
		private var urlServer:String = "rtmp://media.iri.centrepompidou.fr/ddc_micro_record";
		private var nc:NetConnection;
		private var ns:NetStream;
		private var ns2:NetStream;
		private var mic:Microphone;
		private var filename:String;
		private var recordRunning:Boolean = false;
		private var recordStopped:Boolean = false;
		
		// Draw mic feedback
		private var pb:ProgressBar;
		private var activityCurve:Sprite;
		private var micGain:Slider;
		// Variables for the activity curve
		private var xInc:int = 0;
		private var xSpeed:int = 2;
		private var activityWidth:Number;
		// Intervals used to draw the curve et keep track of the duration of the recording
		private var drawCurve:Number;
		private var timecodeInterval:Number;
		private var timecode:Number = 0;
		
		
		public function record_mic() {
			// constructor code
			Security.allowDomain("*");
			Security.allowInsecureDomain("*");
			
			//t = _t;
			r = _recordBtn;
			p = _playBtn;
			pb = _pb;
			activityWidth = _act.width;
			activityCurve = _act._activityCurve;
			micGain = _micGain;
			trace("t = " + t + ", r = " + r + ", p = " + p + ", pb = " + pb);
			
			micGain.visible = p.visible = pb.visible = _act.visible = false;
			//r.buttonMode = r.useHandCursor = 
			p.buttonMode = p.useHandCursor = true;
			pb.mode = ProgressBarMode.MANUAL;
			r.addEventListener(MouseEvent.CLICK, startRecord);
			p.addEventListener(MouseEvent.CLICK, playRecord);
		}
		private function startRecord(e:MouseEvent=null):void{
			trace("startRecord nc = " + nc + ", recordRunning = " + recordRunning);
			if(!recordRunning){
				if (nc==null){
					trace("  startRecord 2");
					nc = new NetConnection();
					nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler, false, 0, true);
					nc.addEventListener(IOErrorEvent.IO_ERROR, errorHandler, false, 0, true);
					nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler, false, 0, true);
					nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandler, false, 0, true);    	
					nc.connect(urlServer);
				}
				else{
					publish();
				}
			}
			else{
				// If record is running, we stop it
				stopRecord();
			}
		}
		private function errorHandler(e:*=null):void {
			trace("errorHandler");
        	closeStream();
        }
		private function closeStream():void{
			trace("closeStream");
			if(ns!=null){
				trace("  ns.close()");
        		ns.close();
        		ns = null;
			}
		}
		private function netStatusHandler(event:NetStatusEvent):void {
			trace("netStatusHandler : " + event.info.code);
        	switch (event.info.code) {
	        	case 'NetConnection.Connect.Success':
					publish();
	        		break;
	        	case 'NetConnection.Connect.Failed':
	        	case 'NetConnection.Connect.Reject':
	        	case 'NetConnection.Connect.Closed':
	        		//closeStream();
	        		break;
        	}
        }
		// send data over rtmp
		private function publish():void {
			trace("publish (ns==null && nc!=null && nc.connected) = " + (ns==null && nc!=null && nc.connected));
			if(nc!=null && nc.connected) {
				trace("  publish 2");
				ns = new NetStream(nc);
				ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler, false, 0, true);
				ns.addEventListener(IOErrorEvent.IO_ERROR, errorHandler, false, 0, true);
				ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandler, false, 0, true);
				// informs the server to record what it receives
				// in fact file name is passed as the user name (the server is meant to record everything it has to in a file named from the user name)	
				filename = "r_" + now();
				trace("filename = " + filename);
				recordRunning = true;
				ns.publish(filename, 'record');
				mic = Microphone.getMicrophone(-1);
				mic.rate = 22;
				micGain.minimum = 0;
				micGain.maximum = 100;
				micGain.value = mic.gain = 50;
				micGain.addEventListener(SliderEvent.CHANGE, onSliderChange);
				mic.addEventListener(ActivityEvent.ACTIVITY, runMicActivity);
				mic.setUseEchoSuppression(true);
				ns.attachAudio(mic);
				micGain.visible = p.visible = pb.visible = _act.visible = true;
			}
		}
		// stop the recording of audio to the stream
		private function stopRecord(e:*=null):void{
			trace("stopRecord (ns!=null) = " + (ns!=null));
			if(ns!=null){
				trace("  stopRecord 2");
				recordRunning = false;
				recordStopped = true;
				ns.play(false); // flushes the recording buffer
    			ns.close();
			}
		}
		// plays back the audio that was recorded
		private function playRecord(e:*=null):void{
			trace("playRecord (ns!=null && recordStopped) = " + (ns!=null && recordStopped));
			if(recordStopped){
				trace("  playRecord 2");
				ns2 = new NetStream(nc);
				ns2.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler2, false, 0, true);
				ns2.addEventListener(IOErrorEvent.IO_ERROR, errorHandler2, false, 0, true);
				ns2.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandler2, false, 0, true);
				ns2.play(filename);
			}
		}
		private function netStatusHandler2(event:NetStatusEvent):void {
			trace("netStatusHandler 2 : " + event.info.code);
        }
		private function errorHandler2(e:*=null):void {
			trace("errorHandler 2");
        	closeStream2();
        }
		private function closeStream2():void{
			trace("closeStream 2");
			/*if(ns2!=null){
				trace("  ns.close()");
        		ns2.close();
        		ns2 = null;
			}*/
		}
		// Now in string
		private function now():String{
			var d:Date = new Date();
			var m:uint = d.month + 1; // because Date.month begins at 0
			return d.fullYear + (m<10?("0"+m):m) + (d.date<10?("0"+d.date):d.date) + (d.hours<10?("0"+d.hours):d.hours) + (d.minutes<10?("0"+d.minutes):d.minutes) + (d.seconds<10?("0"+d.seconds):d.seconds);
		}
		
		// sets the module ready to record mic activity changes
		private function runMicActivity(e:ActivityEvent):void {
			trace("runMicActivity");
			mic.removeEventListener(ActivityEvent.ACTIVITY, runMicActivity);
			addEventListener(Event.ENTER_FRAME, showMicActivity);
			// Start activity curve feedback, every second
			activityCurve.graphics.clear();
			activityCurve.graphics.lineStyle(1, 0xc4c4c4, 1);
			activityCurve.graphics.moveTo(0, 20);
			activityCurve.graphics.beginFill(0xc4c4c4, 100);
			xInc = 0;
			activityCurve.x = 1;
			setInterval(drawSoundCurve, 100);
			/*var tmr:Timer = new Timer(1000, 1000);
			tmr.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
			tmr.addEventListener(TimerEvent.TIMER, drawSoundCurve);
			tmr.start();*/
		}
		// updates the progress bar relating to mic activity
		private function showMicActivity(e:Event):void {
			//trace("showMicActivity res = " + (mic.activityLevel*mic.gain/100));
			//pb.setProgress(mic.activityLevel*mic.gain/100 ,100);
			pb.setProgress(mic.activityLevel,100);
		}
		// updates the actiity curve relating to mic activity
		private function drawSoundCurve():void {
			if(recordRunning){
				trace("drawSoundCurve recordRunning = " + recordRunning + ", mic.activityLevel =  " + mic.activityLevel + ", mic.gain = " + mic.gain + ", h = " + (19*mic.activityLevel/100));
				activityCurve.graphics.lineTo(xInc, 19 - (19*mic.activityLevel/100));	
				activityCurve.graphics.lineTo(xInc, 19);
				if(xInc>activityWidth){
					activityCurve.x -= xSpeed;
				}
				xInc += xSpeed;
			}
		}
		// Updates mic gain
		private function onSliderChange(e:SliderEvent):void {
			trace("onSliderChange");
			mic.gain = micGain.value;
		}
		
	}
	
}
\ No newline at end of file
Binary file script/record_mic/record_mic.swf has changed
--- a/script/record_mic/record_mic/DOMDocument.xml	Tue Jun 05 12:49:37 2012 +0200
+++ b/script/record_mic/record_mic/DOMDocument.xml	Tue Jun 05 13:51:02 2012 +0200
@@ -120,12 +120,11 @@
           <Include href="ProgressBar.xml"/>
           <Include href="RecordBtn.xml" itemIcon="0" loadImmediate="false"/>
           <Include href="Slider.xml"/>
-          <Include href="StopBtn.xml" loadImmediate="false"/>
      </symbols>
      <timelines>
           <DOMTimeline name="Séquence 1" guides='&lt;guidelines&gt;&lt;guideline direction="v"&gt;110&lt;/guideline&gt;&lt;/guidelines&gt;'>
                <layers>
-                    <DOMLayer name="activity" color="#FF800A" autoNamed="false">
+                    <DOMLayer name="activity" color="#FF800A" current="true" isSelected="true" autoNamed="false">
                          <frames>
                               <DOMFrame index="0" keyMode="9728">
                                    <elements>
@@ -164,7 +163,7 @@
    </property>
 ]]></parametersAsXML>
                                         </DOMComponentInstance>
-                                        <DOMComponentInstance libraryItemName="Slider" name="_micGain" centerPoint3DX="74.5" centerPoint3DY="22" uniqueID="2">
+                                        <DOMComponentInstance libraryItemName="Slider" name="_micGain" selected="true" centerPoint3DX="74.5" centerPoint3DY="22" uniqueID="2">
                                              <matrix>
                                                   <Matrix a="0" b="0.3125" c="1" d="0" tx="73" ty="9.5"/>
                                              </matrix>
@@ -199,7 +198,7 @@
       <Inspectable name="value" variable="value" category="" verbose="0" defaultValue="0" type="Number"/>
    </property>
    <property id="visible">
-      <Inspectable name="visible" variable="visible" category="" verbose="1" defaultValue="true" type="Boolean"/>
+      <Inspectable name="visible" variable="visible" category="" verbose="1" defaultValue="false" type="Boolean"/>
    </property>
 ]]></parametersAsXML>
                                         </DOMComponentInstance>
@@ -207,7 +206,7 @@
                               </DOMFrame>
                          </frames>
                     </DOMLayer>
-                    <DOMLayer name="btns" color="#4FFF4F" current="true" isSelected="true" autoNamed="false">
+                    <DOMLayer name="btns" color="#4FFF4F" autoNamed="false">
                          <frames>
                               <DOMFrame index="0" keyMode="9728">
                                    <elements>
@@ -219,14 +218,6 @@
                                                   <Point x="30" y="22"/>
                                              </transformationPoint>
                                         </DOMSymbolInstance>
-                                        <DOMSymbolInstance libraryItemName="StopBtn" name="_stopBtn" centerPoint3DX="194" centerPoint3DY="71">
-                                             <matrix>
-                                                  <Matrix tx="178" ty="55"/>
-                                             </matrix>
-                                             <transformationPoint>
-                                                  <Point x="16" y="16"/>
-                                             </transformationPoint>
-                                        </DOMSymbolInstance>
                                         <DOMSymbolInstance libraryItemName="PlayBtn" name="_playBtn" centerPoint3DX="200.5" centerPoint3DY="111.5">
                                              <matrix>
                                                   <Matrix tx="181" ty="89"/>
@@ -552,26 +543,26 @@
      </extendedSwatchLists>
      <PrinterSettings platform="macintosh"/>
      <publishHistory>
+          <PublishItem publishSize="30062" publishTime="1338896936"/>
+          <PublishItem publishSize="30061" publishTime="1338896925"/>
+          <PublishItem publishSize="30119" publishTime="1338896912"/>
+          <PublishItem publishSize="30118" publishTime="1338896879"/>
+          <PublishItem publishSize="30064" publishTime="1338896798"/>
+          <PublishItem publishSize="8771" publishTime="1338896783"/>
+          <PublishItem publishSize="30060" publishTime="1338896753"/>
+          <PublishItem publishSize="30049" publishTime="1338896683"/>
+          <PublishItem publishSize="30026" publishTime="1338896508"/>
+          <PublishItem publishSize="30026" publishTime="1338896470"/>
+          <PublishItem publishSize="30028" publishTime="1338896351"/>
+          <PublishItem publishSize="30028" publishTime="1338896128"/>
+          <PublishItem publishSize="30081" publishTime="1338895787"/>
+          <PublishItem publishSize="30076" publishTime="1338895647"/>
+          <PublishItem publishSize="30065" publishTime="1338895526"/>
+          <PublishItem publishSize="8759" publishTime="1338895497"/>
           <PublishItem publishSize="184630" publishTime="1338892772"/>
           <PublishItem publishSize="189633" publishTime="1338892081"/>
           <PublishItem publishSize="189607" publishTime="1338892028"/>
           <PublishItem publishSize="189607" publishTime="1338891955"/>
-          <PublishItem publishSize="189607" publishTime="1338891888"/>
-          <PublishItem publishSize="189640" publishTime="1338891838"/>
-          <PublishItem publishSize="189609" publishTime="1338891768"/>
-          <PublishItem publishSize="189613" publishTime="1338891524"/>
-          <PublishItem publishSize="189227" publishTime="1338829861"/>
-          <PublishItem publishSize="189246" publishTime="1338829743"/>
-          <PublishItem publishSize="189254" publishTime="1338829700"/>
-          <PublishItem publishSize="189247" publishTime="1338829603"/>
-          <PublishItem publishSize="189241" publishTime="1338829543"/>
-          <PublishItem publishSize="189236" publishTime="1338829433"/>
-          <PublishItem publishSize="189229" publishTime="1338829199"/>
-          <PublishItem publishSize="189244" publishTime="1338829056"/>
-          <PublishItem publishSize="189218" publishTime="1338828971"/>
-          <PublishItem publishSize="171474" publishTime="1338828956"/>
-          <PublishItem publishSize="172980" publishTime="1338806219"/>
-          <PublishItem publishSize="172981" publishTime="1338806187"/>
      </publishHistory>
      <swcCache>
           <Swc hashKey="kfuaIecnz3BPM/B8Awo4b." href="I06HM53Q5Z.swc">
--- a/script/record_mic/record_mic/LIBRARY/StopBtn.xml	Tue Jun 05 12:49:37 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-<DOMSymbolItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ns.adobe.com/xfl/2008/" name="StopBtn" itemID="4fc8c1c3-0000027f" sourceLibraryItemHRef="Symbole 1" lastModified="1338556867">
-  <timeline>
-    <DOMTimeline name="StopBtn">
-      <layers>
-        <DOMLayer name="Calque 1" color="#4FFF4F" current="true" isSelected="true">
-          <frames>
-            <DOMFrame index="0" keyMode="9728">
-              <elements>
-                <DOMShape>
-                  <fills>
-                    <FillStyle index="1">
-                      <SolidColor color="#0000FF"/>
-                    </FillStyle>
-                  </fills>
-                  <edges>
-                    <Edge fillStyle1="1" edges="!640 640S2|0 640!0 640|0 0!0 0|640 0!640 0|640 640"/>
-                  </edges>
-                </DOMShape>
-              </elements>
-            </DOMFrame>
-          </frames>
-        </DOMLayer>
-      </layers>
-    </DOMTimeline>
-  </timeline>
-</DOMSymbolItem>
\ No newline at end of file
--- a/script/record_mic/record_mic/META-INF/metadata.xml	Tue Jun 05 12:49:37 2012 +0200
+++ b/script/record_mic/record_mic/META-INF/metadata.xml	Tue Jun 05 13:51:02 2012 +0200
@@ -5,8 +5,8 @@
             xmlns:xmp="http://ns.adobe.com/xap/1.0/">
          <xmp:CreatorTool>Adobe Flash Professional CS5</xmp:CreatorTool>
          <xmp:CreateDate>2012-06-01T15:13:14+02:00</xmp:CreateDate>
-         <xmp:MetadataDate>2012-06-05T12:39:22+02:00</xmp:MetadataDate>
-         <xmp:ModifyDate>2012-06-05T12:39:22+02:00</xmp:ModifyDate>
+         <xmp:MetadataDate>2012-06-05T13:24:49+02:00</xmp:MetadataDate>
+         <xmp:ModifyDate>2012-06-05T13:24:49+02:00</xmp:ModifyDate>
       </rdf:Description>
       <rdf:Description rdf:about=""
             xmlns:dc="http://purl.org/dc/elements/1.1/">
@@ -15,7 +15,7 @@
       <rdf:Description rdf:about=""
             xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
             xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#">
-         <xmpMM:InstanceID>xmp.iid:F77F1174072068118C14CD09EB1E427B</xmpMM:InstanceID>
+         <xmpMM:InstanceID>xmp.iid:ED7F1174072068118A6DA8FBD6380496</xmpMM:InstanceID>
          <xmpMM:DocumentID>xmp.did:F77F11740720681188C6EA8C8D268D08</xmpMM:DocumentID>
          <xmpMM:OriginalDocumentID>xmp.did:F77F11740720681188C6EA8C8D268D08</xmpMM:OriginalDocumentID>
          <xmpMM:History>
@@ -43,6 +43,12 @@
                   <stEvt:when>2012-06-01T15:13:14+02:00</stEvt:when>
                   <stEvt:softwareAgent>Adobe Flash Professional CS5</stEvt:softwareAgent>
                </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <stEvt:action>created</stEvt:action>
+                  <stEvt:instanceID>xmp.iid:ED7F1174072068118A6DA8FBD6380496</stEvt:instanceID>
+                  <stEvt:when>2012-06-01T15:13:14+02:00</stEvt:when>
+                  <stEvt:softwareAgent>Adobe Flash Professional CS5</stEvt:softwareAgent>
+               </rdf:li>
             </rdf:Seq>
          </xmpMM:History>
       </rdf:Description>
Binary file script/record_mic/record_mic/bin/SymDepend.cache has changed