topical media & game development
#video-clips-tube-baby-laugh.mx
#video-clips-tube-baby-laugh.mx
[swf]
[flash]
flex
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="hush()">
<mx:String id="dispState" />
<mx:Script>
<![CDATA[
import flash.display.Sprite;
import flash.events.MouseEvent;
private var state:int = 0;
private var sprite:Sprite;
// Cato Paus Skrede UmbrellaCorp DA http://www.umbrellacorp.no
import flash.display.StageDisplayState;
import mx.managers.SystemManager;
private function hush():void {
//sprite = new animation_ch04_DrawingApp();
/* Set up full screen handler. */
systemManager.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler);
dispState = systemManager.stage.displayState;
}
private function fullScreenHandler(evt:FullScreenEvent):void {
dispState = systemManager.stage.displayState + " (fullScreen=" + evt.fullScreen.toString() + ")";
if (evt.fullScreen) {
/* Do something specific here if we switched to full screen mode. */
} else {
/* Do something specific here if we switched to normal mode. */
}
}
private function toggleFullScreen():void {
try {
switch (systemManager.stage.displayState) {
case StageDisplayState.FULL_SCREEN:
/* If already in full screen mode, switch to normal mode. */
systemManager.stage.displayState = StageDisplayState.NORMAL;
break;
default:
/* If not in full screen mode, switch to full screen mode. */
systemManager.stage.displayState = StageDisplayState.FULL_SCREEN;
break;
}
} catch (err:SecurityError) {
// ignore
}
}
[Bindable]
public var movie:String;
private function setSource():void{
//movie = "http://stage.orchestra.it/x.flv"; // some dud dancing 16 min sample.
movie = "../assets/clips/tube/baby-laugh.flv";
//movie = "http://www.youtube.com/v/@video";
// the url of the FLV ver. 1.1 do contains the metaData for totalTime FLV ver 1.0 do's NOT.
/* if you type the url into VideoDisplay.source and use autoplay it starts to play in design mode
that's realy annoying.*/
sprite = new animation_ch03_Oval();
//sprite = new animation_ch09_Bubbles2();
videoDisplay.addChild(sprite);
//sprite = new animation_ch04_DrawingApp();
//videoDisplay.addChild(sprite);
}
private function formatPositionToolTip(value:int):String{
// do only handle minuts.
var result:String = (value % 60).toString();
if (result.length == 1){
result = Math.floor(value / 60).toString() + ":0" + result;
} else {
result = Math.floor(value / 60).toString() + ":" + result;
}
return result;
}
private function zhHandler ( event:MouseEvent ):void
{
if (state == 0) {
//myLabel.text = " XXXXXXXXXXXXXXX ";
//videoLabel.text = " XXXXXXXXXXXXXXX ";
textLabel.text = " 还是笑? ";
text1Label.text = " (singularity 近) ";
state = 1;
} else if (state == 1) {
//myLabel.text = " game over ";
textLabel.text = " 你们会笑,从现在起20年内? ";
text1Label.text = " (阻力无用) ";
state = 2;
} else if (state == 2) {
//myLabel.text = " game over ";
textLabel.text = " game over ";
text1Label.text = " (算你的祝福) ";
state = 3;
} else {
textLabel.text = " ";
text1Label.text = " ";
state = 0;
videoDisplay.removeChild(sprite);
}
}
private function enHandler ( event:MouseEvent ):void
{
if (state == 0) {
//myLabel.text = " XXXXXXXXXXXXXXX ";
//videoLabel.text = " XXXXXXXXXXXXXXX ";
textLabel.text = " still laughing? ";
text1Label.text = " (the singularity is near) ";
state = 1;
} else if (state == 1) {
//myLabel.text = " game over ";
textLabel.text = " and 20 years from now? ";
text1Label.text = " (resistance is futile) ";
state = 2;
} else if (state == 2) {
//myLabel.text = " game over ";
textLabel.text = " game over ";
text1Label.text = " (count your blessings) ";
state = 3;
} else {
textLabel.text = " ";
text1Label.text = " ";
state = 0;
}
}
]]>
</mx:Script>
<mx:Panel layout="absolute" width="100%" height="100%"
headerHeight="0" cornerRadius="2" borderStyle="solid" borderThickness="0"
borderThicknessBottom="0" borderThicknessLeft="0" borderThicknessRight="0"
borderThicknessTop="0" backgroundColor="#0f00f0">
<mx:Label id="myLabel" width="180" x="300" y="400" fontWeight="bold" fontSize="24" color="red" />
<mx:VideoDisplay id="videoDisplay" source="{movie}" width="100%" height="100%" left="0" top="0" right="0"/>
<mx:ProgressBar id="loadProgress" label="" mode="event" barColor="#00ff00"
minimum="0" maximum="100" bottom="55" height="5"
source="{videoDisplay}" trackHeight="10" trackColors="[#00ff00, #e6eeee]" left="10" right="10"/>
<mx:HSlider id="position" height="3"
dataTipFormatFunction="formatPositionToolTip"
thumbPress="videoDisplay.pause()" slideDuration="0"
thumbRelease="videoDisplay.play()"
change="videoDisplay.playheadTime = position.value"
value="{videoDisplay.playheadTime}"
minimum="0" maximum="{videoDisplay.totalTime}" left="4" right="4" bottom="62"/>
<mx:Button label="f/v" click="toggleFullScreen()" bottom="10" x="10" right="20" />
<mx:Button click="setSource()" label="start" cornerRadius="0" bottom="10" x="10" right="80"/>
<mx:Button id="zhButton" label="zh" click="zhHandler(event);" cornerRadius="0" bottom="10" x="10" right="250" />
<mx:Button id="enButton" label="en" click="enHandler(event);" cornerRadius="0" bottom="10" x="10" right="200" />
<mx:Button label="play" click="videoDisplay.play();" cornerRadius="0" bottom="10" x="10" left="10"/>
<mx:Button label="pause" click="videoDisplay.pause();" cornerRadius="0" bottom="10" left="69"/>
<mx:Button label="stop" click="videoDisplay.stop();" cornerRadius="0" left="138" bottom="10"/>
<mx:HSlider id="volume" snapInterval="0.01" value="0.5" maximum="1.0"
change="videoDisplay.volume = volume.value;"
liveDragging="true" height="20" left="220" bottom="20" width="154"/>
<mx:Label styleName="playheadTimeLabel"
text="media @ VU: [{formatPositionToolTip(videoDisplay.playheadTime)} - {formatPositionToolTip(videoDisplay.totalTime)}]"
color="#ffffff" left="5" top="0"/>
<mx:Label id="videoLabel" styleName="playheadTimeLabel" text="tube" color="#ffffff" right="25" top="0"/>
<mx:Label id="textLabel" styleName="playheadTimeLabel" text="" color="#ffffff" right="250" top="200" fontSize="40" />
<mx:Label id="text1Label" styleName="playheadTimeLabel" text="" color="#ffffff" right="250" top="300" fontSize="30" />
</mx:Panel>
</mx:Application>
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.