<?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.

-->

<s:Module
	xmlns:fx="http://ns.adobe.com/mxml/2009"
	xmlns:mx="library://ns.adobe.com/flex/mx"
	xmlns:s="library://ns.adobe.com/flex/spark">
	
	<s:states>
		<s:State name="default"/>
		<s:State name="flipped"/>
	</s:states>
	
	<s:transitions>
		<s:Transition id="t1" autoReverse="true">
			<s:CrossFade
				target="{holder}" 
				duration="1000" />
		</s:Transition>
	</s:transitions>
	
	<s:Panel title="CrossFade Effect Sample with Transition" width="100%" height="100%">
		
		<s:HGroup verticalCenter="0" horizontalCenter="0">
			<s:VGroup>
				<s:Group id="holder">
					<s:BitmapImage
						source="@Embed('assets/ApacheFlexLogo.png')"
						visible="true" visible.flipped="false"/>
					<s:BitmapImage
						source="@Embed('assets/ApacheFlexLogo.png')"
						visible="false" visible.flipped="true"/>
	
				</s:Group>
				<s:Button id="playButton" left="264" bottom="174"
						  label="Cross Fade"
						  click="currentState = (currentState == 'flipped') ? 'default' : 'flipped'" y.default="-33"/>
			</s:VGroup>
			<mx:Spacer width="50"/>
			<s:VGroup width="100%" >
				<s:Label text="Cross Fade Sample" fontSize="18"/>
				<s:Label width="250" verticalAlign="justify" 
						 text="The CrossFade effect performs a bitmap transition effect by running a crossfade between the first and second bitmaps. 
						 The crossfade blends the two bitmaps over the duration of the animation."/>
			</s:VGroup>
		</s:HGroup>
		
	</s:Panel>	
</s:Module>
