blob: 2cb3268a649a83bfbe6d6b07ced24528b88fbcee [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:assets="assets.*"
width="1200" height="600"
backgroundColor="0xFFFFFF" backgroundGradientColors="[0xFFFFFF, 0xFFFFFF]"
layout="horizontal">
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
@font-face
{
src: url("../../../../../Assets/Fonts/Open_Sans/OpenSans-Regular.ttf");
fontFamily: EmbeddedVerdana;
embedAsCFF: false;
}
@font-face
{
src: url("../../../../../Assets/Fonts/Open_Sans/OpenSans-Bold.ttf");
fontWeight: bold;
fontFamily: EmbeddedVerdana;
embedAsCFF: false;
}
@font-face
{
src: url("../../../../../Assets/Fonts/Open_Sans/OpenSans-Italic.ttf");
fontStyle: italic;
fontFamily: EmbeddedVerdana;
embedAsCFF: false;
}
global
{
fontFamily: EmbeddedVerdana;
fontAntiAliasType: normal;
}
</fx:Style>
<fx:Script>
<![CDATA[
import assets.ObjectTabs;
import mx.effects.Effect;
import mx.events.EffectEvent;
import mx.events.TweenEvent;
import mx.containers.Canvas;
import mx.containers.TabNavigator;
import flash.events.EventDispatcher;
import flash.events.TimerEvent;
import mx.controls.Alert;
import mx.events.StateChangeEvent;
//Pubs
public var timer:Timer = new Timer(1000, 1);
public var dispatcher:EventDispatcher = new EventDispatcher();
public var currentEffect:Effect;
//I hate mustella
public function get currentTabNavigator():TabNavigator
{
return(this.getChildAt(1) as TabNavigator);
}
public function get currentAccordion():Accordion
{
return(this.currentTabNavigator.getChildAt(this.currentTabNavigator.selectedIndex) as Accordion);
}
public function get currentCanvas():Canvas
{
return(this.currentAccordion.getChildAt(this.currentAccordion.selectedIndex) as Canvas);
}
//Prives
private var updateCounter:uint = 0;
public function Reset():void
{
this.ResetEventLabels();
this.ReloadTabNavigator();
}
public function ReloadTabNavigator():void
{
//Remove the object tab
this.addEventListener("updateComplete", HandleTabNavigatorRemoval);
this.removeChildAt(1);
}
public function HandleTabNavigatorRemoval(event:Event):void
{
//Readd a new one
this.removeEventListener("updateComplete", HandleTabNavigatorRemoval);
this.addEventListener("updateComplete", HandleTabNavigatorAddition);
this.addChildAt(new ObjectTabs(), 1);
}
public function HandleTabNavigatorAddition(event:Event):void
{
//Signal we're all done
this.removeEventListener("updateComplete", HandleTabNavigatorAddition);
this.dispatcher.dispatchEvent(new Event("refreshComplete"));
}
public function ResetEventLabels():void
{
//Reset styles
this.lbl_EffectStart.setStyle("color", "0x00000");
this.lbl_TweenStart.setStyle("color", "0x00000");
this.lbl_TweenUpdate.setStyle("color", "0x00000");
this.lbl_TweenEnd.setStyle("color", "0x00000");
this.lbl_AnimationStart.setStyle("color", "0x00000");
this.lbl_AnimationUpdate.setStyle("color", "0x00000");
this.lbl_AnimationRepeat.setStyle("color", "0x00000");
this.lbl_AnimationEnd.setStyle("color", "0x00000");
this.lbl_EffectEnd.setStyle("color", "0x00000");
}
public function SelectCanvas(controlName:String):void
{
if(this.currentTabNavigator)
{
var accordions:Array = this.currentTabNavigator.getChildren();
for(var i:int = 0; i < accordions.length; i++)
{
var canvases:Array = (accordions[i] as Accordion).getChildren();
for(var j:int = 0; j < canvases.length; j++)
{
if(canvases[j].label == controlName)
{
this.currentTabNavigator.selectedIndex = i;
}
}
}
}
}
private function GetTarget():Object
{
if(this.currentTabNavigator)
{
var accord:Accordion = this.currentTabNavigator.getChildAt(this.currentTabNavigator.selectedIndex) as Accordion;
var canvas:mx.containers.Canvas = accord.selectedChild as mx.containers.Canvas;
var target:Object = canvas.getChildAt(0);
return(target);
}
return(null);
}
public function ClickButton(buttonID:String):void
{
var vboxes:Array = this.testAccordion.getChildren();
if(vboxes != null)
{
for(var i:uint = 0; i < vboxes.length; i++)
{
var buttons:Array = vboxes[i].getChildren();
if(buttons != null)
{
for(var j:uint = 0; j < buttons.length; j++)
{
if(buttons[j].id == buttonID)
{
buttons[j].dispatchEvent(new MouseEvent("click", true));
}
}
}
}
}
}
private function HandleUpdateComplete(event:Event):void
{
this.updateCounter++;
if(this.updateCounter > 1)
{
this.dispatcher.dispatchEvent(new Event("selectionComplete"));
}
}
public function PlayEffectTarget(effect:Effect, duration:int, startDelay:int, repeatCount:int, repeatDelay:int, playReversed:Boolean = false):void
{
effect.resume();
effect.stop();
this.currentEffect = effect;
ResetEffectAndGauges(effect);
effect.target = this.GetTarget();
effect.duration = duration;
effect.startDelay = startDelay;
effect.repeatCount = repeatCount;
effect.repeatDelay = repeatDelay;
effect.play(null, playReversed);
}
public function SeekEffectTarget(effect:Effect, duration:int, startDelay:int, repeatCount:int, repeatDelay:int, seekTo:Number):void
{
effect.resume();
effect.stop();
this.currentEffect = effect;
effect.target = this.GetTarget();
effect.duration = duration;
effect.startDelay = startDelay;
effect.repeatCount = repeatCount;
effect.repeatDelay = repeatDelay;
effect.playheadTime = seekTo;
timer.start();
}
private function ResetEffectAndGauges(effect:Effect):void
{
if(effect.hasEventListener(EffectEvent.EFFECT_START))
effect.removeEventListener(EffectEvent.EFFECT_START, this.HandleEffectStart);
if(effect.hasEventListener(TweenEvent.TWEEN_START))
effect.removeEventListener(TweenEvent.TWEEN_START, this.HandleTweenStart);
if(effect.hasEventListener(TweenEvent.TWEEN_UPDATE))
effect.removeEventListener(TweenEvent.TWEEN_UPDATE, this.HandleTweenUpdate);
if(effect.hasEventListener(TweenEvent.TWEEN_END))
effect.removeEventListener(TweenEvent.TWEEN_END, this.HandleTweenEnd);
if(effect.hasEventListener(EffectEvent.EFFECT_END))
effect.removeEventListener(EffectEvent.EFFECT_END, this.HandleEffectEnd);
//Reattach listeners
effect.addEventListener(EffectEvent.EFFECT_START, HandleEffectStart);
effect.addEventListener(TweenEvent.TWEEN_START, HandleTweenStart);
effect.addEventListener(TweenEvent.TWEEN_UPDATE, HandleTweenUpdate);
effect.addEventListener(TweenEvent.TWEEN_END, HandleTweenEnd);
effect.addEventListener(EffectEvent.EFFECT_END, HandleEffectEnd);
//Reset labels
this.ResetEventLabels();
}
private function HandleEffectStart(event:EffectEvent):void
{
this.lbl_EffectStart.setStyle("color", "0x00FF00");
}
private function HandleTweenStart(event:TweenEvent):void
{
this.lbl_TweenStart.setStyle("color", "0x00FF00");
}
private function HandleTweenUpdate(event:TweenEvent):void
{
this.lbl_TweenUpdate.setStyle("color", "0x00FF00");
}
private function HandleTweenEnd(event:TweenEvent):void
{
this.lbl_TweenEnd.setStyle("color", "0x00FF00");
}
private function HandleEffectEnd(event:EffectEvent):void
{
this.lbl_EffectEnd.setStyle("color", "0x00FF00");
}
]]>
</fx:Script>
<fx:Declarations>
<mx:Blur id="e_Blur" blurXFrom="0" blurXTo="5" blurYFrom="0" blurYTo="5"/>
<mx:Dissolve id="e_Dissolve" alphaFrom="1" alphaTo=".2"/>
<mx:Fade id="e_Fade" alphaFrom="1" alphaTo=".3"/>
<mx:Glow id="e_Glow" alphaFrom="0.3" alphaTo="1.0" blurXFrom="0" blurXTo="5" blurYFrom="0" blurYTo="5" color="0x0000FF"/>
<mx:Iris id="e_Iris" showTarget="true"/>
<mx:MaskEffect id="e_MaskEffect" scaleXFrom="0" scaleXTo=".7" scaleYFrom="0" scaleYTo=".7"/>
<mx:Move id="e_Move" xFrom="20" xTo="40" yFrom="20" yTo="40"/>
<mx:Resize id="e_Resize" widthBy="30" heightBy="30"/>
<mx:Rotate id="e_Rotate" angleFrom="0" angleTo="360"/>
<mx:WipeDown id="e_WipeDown"/>
<mx:WipeLeft id="e_WipeLeft"/>
<mx:WipeRight id="e_WipeRight"/>
<mx:WipeUp id="e_WipeUp"/>
<mx:Zoom id="e_Zoom" zoomWidthFrom="0" zoomWidthTo=".8" zoomHeightFrom="0" zoomHeightTo=".6"/>
<s:Animate id="e_FxAnimate">
<s:motionPaths>
<s:SimpleMotionPath property="x" valueFrom="0" valueTo="40"/>
<s:SimpleMotionPath property="y" valueFrom="0" valueTo="5"/>
<s:SimpleMotionPath property="alpha" valueFrom="0" valueTo=".7"/>
</s:motionPaths>
</s:Animate>
<s:AnimateColor id="e_FxAnimateColor" colorFrom="0x00000" colorTo="0x0000FF"/>
<s:Fade id="e_FxFade" alphaFrom="0" alphaTo=".7"/>
<s:Move id="e_FxMove" xFrom="0" xTo="20" yFrom="0" yTo="40"/>
<s:Resize id="e_FxResize" widthBy="30" heightBy="30"/>
<s:Rotate id="e_FxRotate" angleFrom="0" angleTo="360"/>
<s:Rotate3D id="e_FxRotate3D" angleXFrom="0" angleXTo="225"/>
<s:Rotate id="e_FxRotate_Loop" angleFrom="0" angleTo="360" repeatBehavior="loop"/>
<s:Rotate id="e_FxRotate_Reverse" angleFrom="0" angleTo="360" repeatBehavior="reverse"/>
</fx:Declarations>
<mx:HBox id="mainBox">
<mx:VBox width="170" height="540" verticalScrollPolicy="off" creationPolicy="all">
<mx:Label width="100%" text="Properties"/>
<mx:HRule width="100%"/>
<s:Button id="btn_Reset" label="Reset" width="100%" click="Reset()"/>
<s:Button id="btn_Pause" label="Pause" width="100%" click="currentEffect.pause()"/>
<s:Button id="btn_Resume" label="Resume" width="100%" click="currentEffect.resume()"/>
<s:Button id="btn_Stop" label="Stop" width="100%" click="currentEffect.stop()"/>
<mx:Spacer/>
<mx:Label width="100%" text="Events"/>
<mx:HRule width="100%"/>
<mx:VBox id="eventBox">
<mx:Label id="lbl_EffectStart" width="100%" text="EffectStart" color="0x000000" fontWeight="bold"/>
<mx:Label id="lbl_TweenStart" width="100%" text="TweenStart" color="0x000000" fontWeight="bold"/>
<mx:Label id="lbl_TweenUpdate" width="100%" text="TweenUpdate" color="0x000000" fontWeight="bold"/>
<mx:Label id="lbl_TweenEnd" width="100%" text="TweenEnd" color="0x000000" fontWeight="bold"/>
<mx:Label id="lbl_AnimationStart" width="100%" text="AnimationStart" color="0x000000" fontWeight="bold"/>
<mx:Label id="lbl_AnimationUpdate" width="100%" text="AnimationUpdate" color="0x000000" fontWeight="bold"/>
<mx:Label id="lbl_AnimationRepeat" width="100%" text="AnimationRepeat" color="0x000000" fontWeight="bold"/>
<mx:Label id="lbl_AnimationEnd" width="100%" text="AnimationEnd" color="0x000000" fontWeight="bold"/>
<mx:Label id="lbl_EffectEnd" width="100%" text="EffectEnd" color="0x000000" fontWeight="bold"/>
</mx:VBox>
</mx:VBox>
<mx:VBox width="250" height="540" verticalScrollPolicy="off" creationPolicy="all">
<mx:Label width="100%" text="Effects"/>
<mx:HRule width="100%"/>
<mx:Accordion id="testAccordion" width="100%" height="467" creationPolicy="all" verticalScrollPolicy="off">
<mx:VBox width="100%" height="100%" label="Play Effect">
<mx:LinkButton id="Effect_play_Blur" label="Blur" width="100%" click="PlayEffectTarget(e_Blur, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_Dissolve" label="Dissolve" width="100%" click="PlayEffectTarget(e_Dissolve, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_Fade" label="Fade" width="100%" click="PlayEffectTarget(e_Fade, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_Glow" label="Glow" width="100%" click="PlayEffectTarget(e_Glow, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_Iris" label="Iris" width="100%" click="PlayEffectTarget(e_Iris, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_MaskEffect" label="MaskEffect" width="100%" click="PlayEffectTarget(e_MaskEffect, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_Move" label="Move" width="100%" click="PlayEffectTarget(e_Move, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_Resize" label="Resize" width="100%" click="PlayEffectTarget(e_Resize, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_Rotate" label="Rotate" width="100%" click="PlayEffectTarget(e_Rotate, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_WipeDown" label="WipeDown" width="100%" click="PlayEffectTarget(e_WipeDown, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_WipeLeft" label="WipeLeft" width="100%" click="PlayEffectTarget(e_WipeLeft, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_WipeRight" label="WipeRight" width="100%" click="PlayEffectTarget(e_WipeRight, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_WipeUp" label="WipeUp" width="100%" click="PlayEffectTarget(e_WipeUp, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_Zoom" label="Zoom" width="100%" click="PlayEffectTarget(e_Zoom, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_FxAnimate" label="FxAnimate" width="100%" click="PlayEffectTarget(e_FxAnimate, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_FxAnimateColor" label="FxAnimateColor" width="100%" click="PlayEffectTarget(e_FxAnimateColor, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_FxFade" label="FxFade" width="100%" click="PlayEffectTarget(e_FxFade, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_FxMove" label="FxMove" width="100%" click="PlayEffectTarget(e_FxMove, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_FxResize" label="FxResize" width="100%" click="PlayEffectTarget(e_FxResize, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_FxRotate" label="FxRotate" width="100%" click="PlayEffectTarget(e_FxRotate, 1000, 0, 1, 0)"/>
<mx:LinkButton id="Effect_play_FxRotate3D" label="FxRotate3D" width="100%" click="PlayEffectTarget(e_FxRotate3D, 1000, 0, 1, 0)"/>
</mx:VBox>
<mx:VBox width="100%" height="100%" label="Seek Effect">
<mx:LinkButton id="Effect_seek_Blur" label="Blur" width="100%" click="SeekEffectTarget(e_Blur, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_Dissolve" label="Dissolve" width="100%" click="SeekEffectTarget(e_Dissolve, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_Fade" label="Fade" width="100%" click="SeekEffectTarget(e_Fade, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_Glow" label="Glow" width="100%" click="SeekEffectTarget(e_Glow, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_Iris" label="Iris" width="100%" click="SeekEffectTarget(e_Iris, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_MaskEffect" label="MaskEffect" width="100%" click="SeekEffectTarget(e_MaskEffect, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_Move" label="Move" width="100%" click="SeekEffectTarget(e_Move, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_Resize" label="Resize" width="100%" click="SeekEffectTarget(e_Resize, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_Rotate" label="Rotate" width="100%" click="SeekEffectTarget(e_Rotate, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_WipeDown" label="WipeDown" width="100%" click="SeekEffectTarget(e_WipeDown, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_WipeLeft" label="WipeLeft" width="100%" click="SeekEffectTarget(e_WipeLeft, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_WipeRight" label="WipeRight" width="100%" click="SeekEffectTarget(e_WipeRight, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_WipeUp" label="WipeUp" width="100%" click="SeekEffectTarget(e_WipeUp, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_Zoom" label="Zoom" width="100%" click="SeekEffectTarget(e_Zoom, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_FxAnimate" label="FxAnimate" width="100%" click="SeekEffectTarget(e_FxAnimate, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_FxAnimateColor" label="FxAnimateColor" width="100%" click="SeekEffectTarget(e_FxAnimateColor, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_FxFade" label="FxFade" width="100%" click="SeekEffectTarget(e_FxFade, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_FxMove" label="FxMove" width="100%" click="SeekEffectTarget(e_FxMove, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_FxResize" label="FxResize" width="100%" click="SeekEffectTarget(e_FxResize, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_FxRotate" label="FxRotate" width="100%" click="SeekEffectTarget(e_FxRotate, 1000, 0, 1, 0, 500)"/>
<mx:LinkButton id="Effect_seek_FxRotate3D" label="FxRotate3D" width="100%" click="SeekEffectTarget(e_FxRotate3D, 1000, 0, 1, 0, 500)"/>
</mx:VBox>
<mx:VBox width="100%" height="100%" label="Seek Functionality">
<mx:LinkButton id="Effect_seek_IntoSD" label="Seek Into SD" width="100%" click="SeekEffectTarget(e_FxRotate, 1000, 500, 1, 0, 250)"/>
<mx:LinkButton id="Effect_seek_IntoRC1" label="Seek Into RC 1" width="100%" click="SeekEffectTarget(e_FxRotate, 1000, 0, 2, 0, 333)"/>
<mx:LinkButton id="Effect_seek_IntoRC2" label="Seek Into RC 2" width="100%" click="SeekEffectTarget(e_FxRotate, 1000, 0, 2, 0, 1333)"/>
<mx:LinkButton id="Effect_seek_IntoRC2SD" label="Seek Into RC 2 + SD" width="100%" click="SeekEffectTarget(e_FxRotate, 1000, 0, 2, 300, 1633)"/>
<mx:LinkButton id="Effect_seek_IntoRD" label="Seek Into RD" width="100%" click="SeekEffectTarget(e_FxRotate, 1000, 0, 2, 500, 1250)"/>
<mx:LinkButton id="Effect_seek_IntoRCLoop" label="Seek Into RC Loop" width="100%" click="SeekEffectTarget(e_FxRotate_Loop, 1000, 0, 2, 0, 1333)"/>
<mx:LinkButton id="Effect_seek_IntoRCReverse" label="Seek Into RC Reverse" width="100%" click="SeekEffectTarget(e_FxRotate_Reverse, 1000, 0, 2, 0, 1333)"/>
</mx:VBox>
</mx:Accordion>
</mx:VBox>
</mx:HBox>
<assets:ObjectTabs id="objectTabNavigator"/>
</mx:Application>