<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
      contributor license agreements.  See the NOTICE file distributed with
      this work for additional information regarding copyright ownership.
      The ASF licenses this file to You under the Apache License, Version 2.0
      (the "License"); you may not use this file except in compliance with
      the License.  You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
  -->

<!-- Simple example to demonstrate the Parallel effect. -->
<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx"
				paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0"
				height="100%" width="100%">

	<fx:Declarations>
	   <mx:Parallel id="expand" target="{img}">
	        <mx:Move xTo="{canvas.width/2 - 50}" yTo="{canvas.height/2 - 100}"/>
	        <mx:Resize widthTo="100" heightTo="200"/>
	    </mx:Parallel>
	
	    <mx:Parallel id="contract" target="{img}">
	        <mx:Move xTo="20" yTo="20"/>
	        <mx:Resize widthTo="30" heightTo="60"/>
	    </mx:Parallel>
	</fx:Declarations>

    <mx:Panel title="Parallel Effect Example"
				paddingBottom="10" paddingTop="10" paddingLeft="10" paddingRight="10"
				height="100%" width="100%">

        <mx:Text width="100%" 
            text="Use the Button controls to move and resize the logo in parallel."/>

        <mx:Canvas id="canvas" width="100%" height="100%">
            <mx:Image id="img" x="20" y="20" width="30" height="60"
                source="@Embed(source='assets/ApacheFlexLogo.png')"/>
        </mx:Canvas>

        <mx:ControlBar>
            <mx:Button label="Expand" click="expand.end(); expand.play()"/>
            <mx:Button label="Contract" click="contract.end(); contract.play()"/>
        </mx:ControlBar>

    </mx:Panel>
</mx:Module>
