<!--
  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.
-->
<!DOCTYPE html>
<html xml:lang="EN" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
	<title>Introducing skinning in Flex 4 | Adobe Developer Connection</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<meta name="robots" content="noodp" />
	<meta name="keywords" content="FXG,skinning" />
	<meta name="description" content="Learn how to skin components with the skinning architecture in Flex 4." /><meta name="creationDate" content="2010-10-09 @ 01:00:07" />
	<meta name="lastModifiedDate" content="2010-10-09 @ 01:00:07" />
	<meta name="viewport" content="width=device-width" />
<meta name="page" content="main" />
<meta name="shortTitle" content="Introducing skinning in Flex 4"/>
<meta name="blurb" content="Learn how to skin components with the skinning architecture in Flex 4." />
<meta name="author" content="Ryan Frishberg" />
<meta name="area" content="devnet" />
<link rel="icon" href="http://wwwimages.adobe.com/www.adobe.com/include/img/favicon.ico" type="image/x-icon"/>
	<link rel="shortcut icon" href="http://wwwimages.adobe.com/www.adobe.com/include/img/favicon.ico" type="image/x-icon"/>
<link rel="canonical" href="http://www.adobe.com/devnet/flex/articles/flex4_skinning.html"/>
       <link rel="stylesheet" media="screen" href="http://wwwimages.adobe.com/www.adobe.com/include/style/adobe-light-compressed.css"/>
<!--[if !IE]><!-->
		<link rel="stylesheet" media="screen,print" href="http://wwwimages.adobe.com/www.adobe.com/include/style/compressed.css"/>
	<!--<![endif]-->
	<!--[if IE]>
		<link rel="stylesheet" media="screen,print" href="/include/style/dotcom-css-compressed.css" />
		<link rel="stylesheet" media="screen,print" href="/include/style/default/SearchBuddy.css" />
		<link rel="stylesheet" media="screen,print" href="/include/style/dotcom-css-modes.css" />
	<![endif]-->
    <link rel="stylesheet" media="screen" href="http://wwwimages.adobe.com/www.adobe.com/include/jmvc/adobe-configurator-compressed.css"/>
    <link rel="stylesheet" media="screen" href="http://wwwimages.adobe.com/www.adobe.com/include/bach/bach-1.0.1.min.css"/>
	<!--[if lt IE 10]>
		<link rel="stylesheet" media="screen" href="/include/style/modes/MirrorIE.css" />
	<![endif]-->
	<script>
	function createNs ( ns )
	{
		var o, a;			
		a = ns.split(".");			
		o = window[a[0]] = window[a[0]] || {};			
		for(i=1; i < a.length; i++)
		{
			o = o[a[i]] = o[a[i]] || {};	
		}
		return o;		
	}

	createNs("Adobe.PageInfo");
	createNs("Adobe.Tokens");
	createNs("Adobe.UserInfo");
	Adobe.PageInfo.AuthenticatedState = false;
	Adobe.PageInfo.localeCode = "en";
	Adobe.PageInfo.accountPageName = "";
	Adobe.PageInfo.productKey = "";
	Adobe.PageInfo.catalogName = "";
	Adobe.PageInfo.countryCode = "US";
    Adobe.PageInfo.localeString = "en_us";
	Adobe.PageInfo.marketSegment = "COM";
	Adobe.PageInfo.sitecatalystMarketSegment = "COM";
	Adobe.PageInfo.akamaiURLPrefix = "http://wwwimages.adobe.com/www.adobe.com";
	Adobe.PageInfo.pageLevel = "7";
</script>
<script src="http://wwwimages.adobe.com/www.adobe.com/include/script/compressed.js"></script>
	<script src="http://wwwimages.adobe.com/www.adobe.com/include/jmvc/adobe-store-compressed.js"></script>
	<script src="http://wwwimages.adobe.com/www.adobe.com/include/bach/bach-1.0.1.min.js"></script>
    <script src="http://wwwimages.adobe.com/www.adobe.com/uber/js/VisitorAPI.js"></script>
	<script src="http://wwwimages.adobe.com/www.adobe.com/uber/js/omniture/mbox.js"></script>
	<!--[if IE 6]>
    <script>
        try{void(document.execCommand("BackgroundImageCache",false,true));} catch(e) {}
    </script>
    <![endif]-->
	<script>
	//<![CDATA[
	$(window).bind("hashchange load", adobe.fn.focusHashElement);
	cart = new adobe.ui.CartFacade("cart-dialog", "cart-dialog-flash");
	cart.setRequiredFlashVersion("9.0.115");
	cart.setDefaultCountry("");
	cart.setDomain(".adobe.com"); // set this to ".adobe.com"
	cart.setContextPath(""); // set this to empty when web context is '/'
	// Possibly add the .edu selector or override market segment
	Adobe.Product.Controller.CPod.EduController.processLocation(true);
	if(cart.isOverlaySupported()) {
		var PromoIDReport = new Array();
		var prmid = window.location.search.match(/\bpromoid\=([^&#$]+)/);
		if(prmid) {
			prmid[1]=prmid[1].toUpperCase();
			cart.setEmailTrackingId(prmid[1]);
		}
		// if a promo code is pass thru the URL, set the promo in the cart and the cookie
		prmid = window.location.search.match(/\bpromocode\=([^&#$]+)/) || null;
		if(prmid) {
			if (Adobe && Adobe.Cart && Adobe.Cart.Models && Adobe.Cart.Models.Cart) {
				var cart = Adobe.Cart.Models.Cart;
				var marketSegment = cart.getMarketSegment() || Adobe.Product.Controller.CPod.EduController.COM;
				cart.addPromotion({code:prmid[1], marketSegment:marketSegment});
				cart.savePromoCode(prmid[1]);
			}
		}
	}
	//]]>
</script>
<script>
	$(document).ready(function()
	{
		adobe.dom.param("wcmmode=disabled");
		adobe.dom.param("compress=false");
	});
</script>
<script>
    var locales = {"cn":true,"us":true,"en_xx":true,"mena_fr":true,"tw":true,"jp":true};
    var tokens = document.location.pathname.split('/');
    var locale = ((tokens.length < 2) || ((locales[tokens[1]] == undefined) && tokens[1]!='content')) ? 'us' : tokens[1];
    var geoCook = 'international=';
    var cookies = document.cookie.split(';');
    for(var i=0;i < cookies.length;i++) {
        var c = cookies[i];
        if ((c.indexOf(geoCook) >= 0) && !(locale=='content') ){
            var preferredLocale = c.substring(c.indexOf(geoCook) + geoCook.length,c.length);
            if ((preferredLocale != locale)&&(locales[preferredLocale])){
                var url = document.location.pathname + document.location.search;
                if (locale == 'us'){
                    url = '/' + preferredLocale + url;
                } else {
                    var suffix = url.substring(locale.length + 1);
                    if ((suffix == null) || (suffix == ""))
                    { 
                    	suffix = "/";
                    }
                    if (preferredLocale != 'us'){
                        url = '/' + preferredLocale + suffix;
                    } else {
                        url = suffix;
                    }
                }
                window.location.replace(url);
            }
        }
    }
</script>
<!--[if (gte IE 9)|(IEMobile)]><!-->
    <link rel="stylesheet" media="only screen" href="/etc/pagetables/reflowtypes/adobe_adc_article.css"/>
    <script src="/etc/pagetables/reflowtypes/adobe_adc_article.js"></script>
    <!--<![endif]-->
<script>
    //<![CDATA[
    if(typeof jQuery != 'undefined'){
        (function($) {
            var dispatcher = (adobe.vrbl("reflowDispatcher") || adobe.vrbl("reflowDispatcher", adobe.reflow.createDispatcher("width", window.document))),
                    viewport = $(window),
                    viewportWidth = NaN,
                    meta = window.document.getElementsByName("viewport")[0],
                    metaContent;

            $(window).bind("resize orientationchange", setRenderMode);

            if(meta) {
                $(window.document).bind("adobe.reflow.LayoutChange", snapViewportToMaxWidth);
            }

            setRenderMode();

            function snapViewportToMaxWidth(event, layout_event) {
                if (layout_event.snapView && layout_event.active) {
                    var widthSetter = "width=",
                            width = widthSetter+layout_event.maxRange,
                            content = meta.getAttribute("content");

                    if(content.indexOf(widthSetter) > -1) {
                        content = content.replace(/width=[^,$]+/, width);
                    } else {
                        content = width;
                    }
                    meta.setAttribute("content", content);
                }
            }

            function setRenderMode() {
                var currentViewportWidth = viewport.width();
                if (viewportWidth == currentViewportWidth) {
                    return;
                } //trottle noisy event
                viewportWidth = currentViewportWidth;
                dispatcher.updateLayout(viewportWidth);
            }
        })(jQuery);
    }
    //]]>
</script>
<link rel="stylesheet" media="screen" href="http://wwwimages.adobe.com/www.adobe.com/include/style/article-compressed.css"/>
<script src="http://community.adobe.com/help/badge/v4/ionLoader.js"></script>
	<script src="http://community.adobe.com/help/badge/v4/ionSupport.js"></script>
	<script src="http://community.adobe.com/help/badge/v4/ionBadge.js"></script>
<script type="text/javascript" src="/etc/clientlibs/granite/jquery.js"></script>
<script type="text/javascript" src="/etc/clientlibs/granite/utils.js"></script>
<script type="text/javascript" src="/etc/clientlibs/granite/jquery/granite.js"></script>
<script type="text/javascript" src="/etc/clientlibs/foundation/jquery.js"></script>
<script type="text/javascript" src="/etc/clientlibs/foundation/shared.js"></script>
<script type="text/javascript" src="/etc/clientlibs/foundation/personalization/kernel.js"></script>
<link rel="stylesheet" href="/apps/dotcom/ag-widgets.css" type="text/css">
<script type="text/javascript">
    $CQ(function() {
        CQ_Analytics.SegmentMgr.loadSegments("/etc/segmentation");
        CQ_Analytics.ClientContextUtils.init("/etc/clientcontext/default","/content/dotcom/en/devnet/flex/articles/flex4_skinning");

        
    });
</script><script type="text/javascript" src="/etc/clientlibs/granite/jquery-ui.js"></script>
<script type="text/javascript" src="/etc/clientlibs/foundation/jquery-ui.js"></script>
<script type="text/javascript" src="/etc/designs/dotcom/clientlib/stores.js"></script>
<link rel="stylesheet" href="/etc/clientlibs/granite/jquery-ui.css" type="text/css">
<link rel="stylesheet" href="/etc/clientlibs/foundation/jquery-ui/themes/default.css" type="text/css">
<script src="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/typekit/yoe7ink.js"></script>
        <script>try{Typekit.load();}catch(e){}</script>
    </head>
<body class="Text TextMedium Link">
<div class="ArticleGrid ArticleWideGrid LayoutSlimGrid LayoutCenter PanelDiffuseShadow PanelFillExtraLight LayoutP">
    <div class="PrintLayoutHide">
        <!--googleoff: all--><div class="sitenav"><script>
    //<![CDATA[
	if (navigator.userAgent.match(/iPad/i) != null){
		adobe.dom.createStyleSheet($('head').get(0), "/include/style/default/SiteHeader-iPad.css");
	}

    $(document).ready(adobe.fn.initGlobalNav);
    //]]>
</script>
<!--googleoff: index-->
<!-- $Id: //depot/projects/dylan/releases/rc_13_11/ubi/globalnav/en_us/globalnav_ssi.html#1 $ -->
<form id="globalnav-search" class="searchbuddy LayoutSlimHidden" name="globalnav-search" method="get" action="/go/gnav_search" accept-charset="utf-8">
    <div id="SiteHeader" class="SiteHeader Text TextSmall">
        <span id="globalnav"></span>
        <a href="/" id="shHome" class="SiteHeaderHome">Adobe</a>
        <div class="SiteHeaderBar" id="shBar">
            <div class="SiteHeaderDropdownLink SiteHeaderBarItem SiteHeaderBarItemFirst" id="shProducts">
                <a href="/products/catalog.html?promoid=KAWQI" id="shProductsLink" class="SiteHeaderBarLink">Products</a>
                <div class="SiteHeaderDropPanel SiteHeaderDropdown-Full" id="ProductsPanel">
                    <div class="SiteHeaderColumnSingle">
                        <div class="SiteHeaderRow">
                            <p class="SiteHeaderPanelHeader">Top destinations</p>
                            <ul>
                                <li class="SiteHeaderPanelLink"><a href="/products/creativecloud.html?promoid=JQPEQ" id="Products_Topdestinations_AdobeCreativeCloud">Adobe Creative Cloud</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/products/creativecloud/teams.html?promoid=KFKQF" id="Products_Topdestinations_CreativeCloudforteams">Creative Cloud for teams</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/products/cs6.html?promoid=JOLIS" id="Product_Topdestinationss_CreativeSuite6">Creative Suite 6</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/marketing?promoid=JOLIT" id="Products_Topdestinations_AdobeMarketingCloud">Adobe Marketing Cloud</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/products/acrobat.html?promoid=JOLIR" id="Products_Topdestinations_Acrobat">Acrobat</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/products/photoshop.html?promoid=JOLIW" id="Products_Topdestinations_Photoshop">Photoshop</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/products/sitecatalyst.html?promoid=KAWQH" id="Product_Topdestinationss_SiteCatalyst">SiteCatalyst</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/education/students.html?marketSegment=EDU&promoid=KFKQD" id="Product_Topdestinationss_Students">Students</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/products/elements-family.html?promoid=JOLIV" id="Product_Topdestinationss_Elementsfamily">Elements family</a></li>
                            </ul>
                        </div>
                    </div>
            
                    <div class="SiteHeaderColumnDouble SiteHeaderShadowLeft">
                        <div class="SiteHeaderRow">
                            <p class="SiteHeaderPanelHeader">Adobe Creative Cloud</p>
                            <ul>
                                <li class="SiteHeaderPanelLink"><a href="/products/creativecloud.html?promoid=KAUBZ" id="Products_AdobeCreativeCloud_WhatisAdobeCreativeCloud">What is Adobe Creative Cloud?</a></li>
                            </ul>

                            <div class="SiteHeaderColumn-1">
                                <ul>
                                    <li class="SiteHeaderPanelLink"><a href="/products/creativecloud/design.html?promoid=KFKPZ" id="Products_AdobeCreativeCloud_Design">Design</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/creativecloud/web.html?promoid=KFKQC" id="Products_AdobeCreativeCloud_Web">Web</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/creativecloud/photography.html?promoid=KFKQA" id="Products_AdobeCreativeCloud_Photography">Photography</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/creativecloud/video.html?promoid=KFKQB" id="Products_AdobeCreativeCloud_Video">Video</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/creativecloud/students.html?marketSegment=EDU&promoid=JUTMG" id="Products_AdobeCreativeCloud_Students">Students</a></li>
                                </ul>
							</div>            

                            <div class="SiteHeaderColumn-2">
                                <ul>
                                    <li class="SiteHeaderPanelLink"><a href="/products/creativecloud/teams.html?promoid=JZVVU" id="Products_AdobeCreativeCloud_Teams">Teams</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/creativecloud/enterprise.html?promoid=KFKPX" id="Products_AdobeCreativeCloud_Enterprise">Enterprise</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/creativecloud/enterprise/education.html?promoid=KFKQE" id="Products_AdobeCreativeCloud_Educationalinstitutions">Educational institutions</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/creativecloud/enterprise.html?promoid=KFKPY" id="Products_AdobeCreativeCloud_Government">Government</a></li>
                                </ul>
							</div>            

                            <div class="SiteHeaderColumn-1">
                                <p class="SiteHeaderPanelHeaderSmall">Design and photography</p>
                                <ul>
                                    <li class="SiteHeaderPanelLink"><a href="/products/photoshop.html?promoid=KAUCA" id="Products_DesignandPhotography_Photoshop">Photoshop</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/illustrator.html?promoid=KAUCB" id="Products_DesignandPhotography_Illustrator">Illustrator</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/indesign.html?promoid=KAUCC" id="Products_DesignandPhotography_InDesign">InDesign</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/muse.html?promoid=KAUCE" id="Products_DesignandPhotography_AdobeMuse">Adobe Muse</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/photoshop-lightroom.html?promoid=KAUCD" id="Products_DesignandPhotography_Lightroom">Lightroom</a></li>
                                </ul>
            
                                <p class="SiteHeaderPanelHeaderSmall">Video</p>
                                <ul class="SiteHeaderPanelLinkNoBottom">
                                    <li class="SiteHeaderPanelLink"><a href="/products/premiere.html?promoid=KAUCJ" id="Products_Video_AdobePremiere">Adobe Premiere</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/aftereffects.html?promoid=KAUCK" id="Products_Video_AfterEffects">After Effects</a></li>
                                </ul>
                            </div>
            
                            <div class="SiteHeaderColumn-2">
                                <p class="SiteHeaderPanelHeaderSmall">Web development and HTML5</p>
                                <ul class="SiteHeaderPanelLinkNoBottom">
                                    <li class="SiteHeaderPanelLink"><a href="http://html.adobe.com/edge/?promoid=KAGMS" target="_blank" id="Products_WebdevelopmentHTML5_EdgeToolsServices">Edge Tools &amp; <span class="SiteHeaderIconNewWindowNoWrap">Services<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/dreamweaver.html?promoid=KAUCF" id="Products_WebdevelopmentHTML5_Dreamweaver">Dreamweaver</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="http://gaming.adobe.com/?promoid=KAUCG" target="_blank" id="Products_WebdevelopmentHTML5_Gaming"><span class="SiteHeaderIconNewWindowNoWrap">Gaming<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                                </ul>
                            </div>
                        </div>
                    </div>
            
                    <div class="SiteHeaderColumnDouble SiteHeaderShadowLeft">
                        <div class="SiteHeaderRow">
                            <p class="SiteHeaderPanelHeader">Adobe Marketing Cloud</p>
                            <ul>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/digital-marketing.html?promoid=KAUCL" id="Products_AdobeMarketingCloud_WhatisAdobeMarketingCloud">What is Adobe Marketing Cloud?</a></li>
                            </ul>
            
                            <div class="SiteHeaderColumn-1">
                                <ul>
                                    <li class="SiteHeaderPanelLink"><a href="/solutions/digital-analytics.html?promoid=KAVVU" id="Products_AdobeMarketingCloud_Digitalanalytics">Digital analytics</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/solutions/social-marketing.html?promoid=KAVVV" id="Products_AdobeMarketingCloud_Socialmarketing">Social marketing</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/solutions/web-experience-management.html?promoid=KAVVX" id="Products_AdobeMarketingCloud_Webexperiencemanagement">Web experience management</a></li>
                                </ul>
                            </div>
            
                            <div class="SiteHeaderColumn-2">
                                <ul>
                                    <li class="SiteHeaderPanelLink"><a href="/solutions/testing-targeting.html?promoid=KAVVW" id="Products_AdobeMarketingCloud_Testingandtargeting">Testing and targeting</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/solutions/media-optimization.html?promoid=KAVVY" id="Products_AdobeMarketingCloud_Mediaoptimization">Media optimization</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/solutions/campaign-management.html?promoid=KFKQH" id="Products_AdobeMarketingCloud_Campaignmanagement">Campaign management</a></li>
                                </ul>
                            </div>
            
                            <div class="SiteHeaderColumn-1">
                                <p class="SiteHeaderPanelHeaderSmall">Analytics</p>
                                <ul>
                                    <li class="SiteHeaderPanelLink"><a href="/products/sitecatalyst.html?promoid=KAUCM" id="Products_Analytics_SiteCatalyst">SiteCatalyst</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/discover.html?promoid=KAUCN" id="Products_Analytics_AdobeDiscover">Adobe Discover</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/insight.html?promoid=KAUCO" id="Products_Analytics_Insight">Insight</a></li>
                                </ul>
            
                                <p class="SiteHeaderPanelHeaderSmall">Social</p>
                                <ul>
                                    <li class="SiteHeaderPanelLink"><a href="/solutions/social-marketing.html?promoid=KAUCP" id="Products_Social_AdobeSocial">Adobe Social</a></li>
                                </ul>
            
                                <p class="SiteHeaderPanelHeaderSmall">Experience Manager</p>
                                <ul class="SiteHeaderPanelLinkNoBottom">
                                    <li class="SiteHeaderPanelLink"><a href="/products/cq.html?promoid=KAUCQ" id="Products_ExperienceManager_CQ">CQ</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/scene7.html?promoid=KAUCR" id="Products_ExperienceManager_Scene7">Scene7</a></li>
                                </ul>
                            </div>
            
                            <div class="SiteHeaderColumn-2">
                                <p class="SiteHeaderPanelHeaderSmall">Target</p>
                                <ul>
                                    <li class="SiteHeaderPanelLink"><a href="/products/testandtarget.html?promoid=KAUCS" id="Products_Target_TestTarget">Test&amp;Target</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/recommendations.html?promoid=KAUCT" id="Products_Target_Recommendations">Recommendations</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/searchandpromote.html?promoid=KAUCU" id="Products_Target_SearchPromote">Search&amp;Promote</a></li>
                                </ul>
            
                                <p class="SiteHeaderPanelHeaderSmall">Media Optimizer</p>
                                <ul>
                                    <li class="SiteHeaderPanelLink"><a href="/products/adlens.html?promoid=KAUCV" id="Products_MediaOptimizer_AdLens">AdLens</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/audiencemanager.html?promoid=KAUCW" id="Products_MediaOptimizer_AudienceManager">AudienceManager</a></li>
                                    <li class="SiteHeaderPanelLink"><a href="/products/audienceresearch.html?promoid=KAUCX" id="Products_MediaOptimizer_AudienceResearch">AudienceResearch</a></li>
                                </ul>
                                
                                <p class="SiteHeaderPanelHeaderSmall">Campaign management</p>
                                <ul class="SiteHeaderPanelLinkNoBottom">
                                    <li class="SiteHeaderPanelLink"><a href="/solutions/campaign-management.html?promoid=KFKQI" id="Products_Campaignmanagement_AdobeCampaign">Adobe Campaign</a></li>
                                </ul>
                            </div>
                        </div>
                    </div>
            
                    <div class="SiteHeaderColumnSingle SiteHeaderShadowLeft">
                        <div class="SiteHeaderRow">
                            <p class="SiteHeaderPanelHeader">Document services</p>
                            <ul>
                                <li class="SiteHeaderPanelLink"><a href="/products/acrobat.html?promoid=KAUCY" id="Products_DocumentServices_Acrobat">Acrobat</a></li>
                                <li class="SiteHeaderPanelLink"><a href="https://www.echosign.adobe.com/en/home.html?promoid=KAUDB" target="_blank" class="SiteHeaderLinkNewWindow" id="Products_DocumentServices_EchoSign"><span class="SiteHeaderIconNewWindowNoWrap">EchoSign<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                                <li class="SiteHeaderPanelLink"><a href="https://www.acrobat.com/formscentral/en/home.html?promoid=KAUCZ" target="_blank" id="Products_DocumentServices_FormsCentral"><span class="SiteHeaderIconNewWindowNoWrap">FormsCentral<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                                <li class="SiteHeaderPanelLink"><a href="https://www.acrobat.com/sendnow/en/home.html?promoid=KAUDA" target="_blank" id="Products_DocumentServices_SendNow"><span class="SiteHeaderIconNewWindowNoWrap">SendNow<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                                <li class="SiteHeaderPanelLink"><a href="https://www.acrobat.com/welcome/en/home.html?promoid=KAUDC" target="_blank" id="Products_DocumentServices_Acrobatcom"><span class="SiteHeaderIconNewWindowNoWrap">Acrobat.com<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                            </ul>
            
                            <p class="SiteHeaderPanelHeader">Publishing</p>
                            <ul class="SiteHeaderPanelLinkNoBottom">
                                <li class="SiteHeaderPanelLink"><a href="/products/digital-publishing-suite-family.html?promoid=JOLIU" id="Products_Publishing_DigitalPublishingSuite">Digital Publishing Suite</a></li>
                            </ul>
                        </div>
                    </div>
                    <br style="clear: both" />
            
                    <div class="SiteHeaderRow">
                        <ul class="SiteHeaderRightLink">
                            <li class="SiteHeaderPanelLink"><a href="/products/catalog.html?promoid=JOOTH" id="Products_Seeallproducts">See all products</a></li>
                        </ul>
                    </div>
                </div>
            </div>
            <div class="SiteHeaderDropdownLink SiteHeaderBarItem" id="shBusinessSolutions">
                <a href="/solutions.html?promoid=KAWQJ" id="shBusinessSolutionsLink" class="SiteHeaderBarLink">Business solutions</a>
                <div class="SiteHeaderDropPanel SiteHeaderDropdown-Double" id="BusinessSolutionsPanel">
                    <div class="SiteHeaderRow">
                        <div class="SiteHeaderColumn-1">
                            <p class="SiteHeaderPanelHeaderSmall">By business need</p>
                            <ul>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/digital-analytics.html?promoid=JOLJB" id="BusinessSolutions_Bybusinessneed_Digitalanalytics">Digital analytics</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/digital-publishing.html?promoid=JOLJA" id="BusinessSolutions_Bybusinessneed_Digitalpublishing">Digital publishing</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/products/acrobat.html?promoid=KAWSC" id="BusinessSolutions_Bybusinessneed_Documentmanagement">Document management</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/media-optimization.html?promoid=JOLIX" id="BusinessSolutions_Bybusinessneed_Mediaoptimization">Media optimization</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/social-marketing.html?promoid=JZPNO" id="BusinessSolutions_Bybusinessneed_Socialmarketing">Social marketing</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/testing-targeting.html?promoid=KAXLU" id="BusinessSolutions_Bybusinessneed_Testingandtargeting">Testing and targeting</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/products/creativecloud/video.html?promoid=KAUDD" id="BusinessSolutions_Bybusinessneed_Videoeditingandserving">Video editing and serving</a></li>
                                <li class="SiteHeaderPanelLink"><a href="http://html.adobe.com?promoid=JZEFF" target="_blank" class="SiteHeaderLinkNewWindow" id="BusinessSolutions_Bybusinessneed_Webdevelopment">Web <span class="SiteHeaderIconNewWindowNoWrap">development<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/web-experience-management.html?promoid=JOOYM" id="BusinessSolutions_Bybusinessneed_Webexperiencemanagement">Web experience management</a></li>
                            </ul>
            
                            <ul class="SiteHeaderPanelLinkNoBottom">
                                <li class="SiteHeaderPanelLink"><a href="/solutions.html?promoid=JOOTI" id="BusinessSolutions_Seeallbusinessneeds">See all business needs</a></li>
                            </ul>
                         </div>
            
                        <div class="SiteHeaderColumn-2">
                            <p class="SiteHeaderPanelHeaderSmall">By industry</p>
                            <ul>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/broadcasting.html?promoid=JOLIY" id="BusinessSolutions_Byindustry_Broadcast">Broadcast</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/education.html?marketSegment=EDU&promoid=JOLIZ" id="BusinessSolutions_Byindustry_Education">Education</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/financial-services.html?promoid=KAUDE" id="BusinessSolutions_Byindustry_Financialservices">Financial services</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/government.html?promoid=KAUDF" id="BusinessSolutions_Byindustry_Government">Government</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/digital-publishing.html?promoid=KAUDG" id="BusinessSolutions_Byindustry_Publishing">Publishing</a></li>
                                <li class="SiteHeaderPanelLink"><a href="/solutions/retail.html?promoid=KAWSD" id="BusinessSolutions_Byindustry_Retail">Retail</a></li>
                            </ul>
            
                            <ul class="SiteHeaderPanelLinkNoBottom">
                                <li class="SiteHeaderPanelLink"><a href="/solutions.html?promoid=KAUDH" id="BusinessSolutions_Seeallindustries">See all industries</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>
            <div class="SiteHeaderDropdownLink SiteHeaderBarItem" id="shSupportLearning">
                <a href="http://helpx.adobe.com/support/?promoid=KAWQK" id="shSupportLearningLink" class="SiteHeaderBarLink">Support &amp; Learning</a>
                <div class="SiteHeaderDropPanel SiteHeaderDropdown-Single" id="SupportLearningPanel">
                    <div class="SiteHeaderRow">
                        <p class="SiteHeaderPanelHeaderSmall">I need help</p>
                        <ul>
                            <li class="SiteHeaderPanelLink"><a href="http://helpx.adobe.com/support/?promoid=JZEFP" id="SupportLearning_Ineedhelp_Products">Products</a></li>
                            <li class="SiteHeaderPanelLink"><a href="http://helpx.adobe.com/creative-cloud/topics/getting-started.html?promoid=JZEFO" id="SupportLearning_Ineedhelp_AdobeCreativeCloud">Adobe Creative Cloud</a></li>
                            <li class="SiteHeaderPanelLink"><a href="http://helpx.adobe.com/marketing-cloud.html?promoid=KAWSE" id="SupportLearning_Ineedhelp_AdobeMarketingCloud">Adobe Marketing Cloud</a></li>
                            <li class="SiteHeaderPanelLink"><a href="http://forums.adobe.com/index.jspa?promoid=JZEFM" target="_blank" id="SupportLearning_Ineedhelp_Forums"><span class="SiteHeaderIconNewWindowNoWrap">Forums<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                        </ul>
            
                        <p class="SiteHeaderPanelHeaderSmall">I want to learn</p>
                        <ul class="SiteHeaderPanelLinkNoBottom">
                            <li class="SiteHeaderPanelLink"><a href="http://helpx.adobe.com/learning.html?promoid=KAUDK" id="SupportLearning_Iwanttolearn_Trainingandtutorials">Training and tutorials</a></li>
                            <li class="SiteHeaderPanelLink"><a href="http://training.adobe.com/certification.html?promoid=KAUDM" target="_blank" id="SupportLearning_Iwanttolearn_Certification"><span class="SiteHeaderIconNewWindowNoWrap">Certification<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                            <li class="SiteHeaderPanelLink"><a href="/devnet.html?promoid=KAUDN" id="SupportLearning_Iwanttolearn_AdobeDeveloperConnection">Adobe Developer Connection</a></li>
                            <li class="SiteHeaderPanelLink"><a href="/designcenter.html?promoid=KAUDO" id="SupportLearning_Iwanttolearn_AdobeDesignCenter">Adobe Design Center</a></li>
                            <li class="SiteHeaderPanelLink"><a href="http://tv.adobe.com?promoid=KFELF" target="_blank" id="SupportLearning_Iwanttolearn_AdobeTV">Adobe <span class="SiteHeaderIconNewWindowNoWrap">TV<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                            <li class="SiteHeaderPanelLink"><a href="/solutions/digital-marketing/guides.html?promoid=KAWSF" id="SupportLearning_Iwanttolearn_AdobeMarketingCenter">Adobe Marketing Center</a></li>
                            <li class="SiteHeaderPanelLink"><a href="http://labs.adobe.com/?promoid=JZEFQ" target="_blank" id="SupportLearning_Iwanttolearn_AdobeLabs">Adobe <span class="SiteHeaderIconNewWindowNoWrap">Labs<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                        </ul>
                    </div>
                </div>
            </div>
            <div class="SiteHeaderDropdownLink SiteHeaderBarItem" id="shDownload">
                <a href="/downloads/?promoid=KAWQL" id="shDownloadLink" class="SiteHeaderBarLink">Download</a>
                <div class="SiteHeaderDropPanel SiteHeaderDropdown-Single" id="DownloadPanel">
                    <div class="SiteHeaderRow">
                        <ul>
                            <li class="SiteHeaderPanelLink"><a href="/downloads/?promoid=JZEFS" id="Download_Producttrials">Product trials</a></li>
                            <li class="SiteHeaderPanelLink"><a href="http://get.adobe.com/flashplayer/?promoid=JZEFT" id="Download_AdobeFlashPlayer">Adobe Flash Player</a></li>
                            <li class="SiteHeaderPanelLink"><a href="http://get.adobe.com/reader/?promoid=JZEFU" id="Download_AdobeReader">Adobe Reader</a></li>
                            <li class="SiteHeaderPanelLink"><a href="http://get.adobe.com/air/?promoid=JZEFV" id="Download_AdobeAIR">Adobe AIR</a></li>
                        </ul>
            
                        <ul class="SiteHeaderPanelLinkNoBottom">
                            <li class="SiteHeaderPanelLink"><a href="/downloads/?promoid=JZEFW" id="Download_Seealldownloads">See all downloads</a></li>
                        </ul>
                    </div>
                </div>
            </div>
            <div class="SiteHeaderDropdownLink SiteHeaderBarItem" id="shCompany">
                <a href="/company.html?promoid=KAWQM" id="shCompanyLink" class="SiteHeaderBarLink">Company</a>
                <div class="SiteHeaderDropPanel SiteHeaderDropdown-Single" id="CompanyPanel">
                    <div class="SiteHeaderRow">
                        <ul>
                            <li class="SiteHeaderPanelLink"><a href="/careers.html?promoid=JZEFX" id="Company_CareersatAdobe">Careers at Adobe</a></li>
                            <li class="SiteHeaderPanelLink"><a href="/aboutadobe/invrelations/?promoid=JZEFZ" id="Company_InvestorRelations">Investor Relations</a></li>
                            <li class="SiteHeaderPanelLink"><a href="/aboutadobe/pressroom/?promoid=JZEGA" id="Company_Newsroom">Newsroom</a></li>
                            <li class="SiteHeaderPanelLink"><a href="/privacy.html?promoid=JZEGB" id="Company_Privacy">Privacy</a></li>
                            <li class="SiteHeaderPanelLink"><a href="/corporate-responsibility.html?promoid=JZEFY" id="Company_CorporateResponsibility">Corporate Responsibility</a></li>
                            <li class="SiteHeaderPanelLink"><a href="/customershowcase.html?promoid=KEWBG" id="Company_CustomerShowcase">Customer Showcase</a></li>
                            <li class="SiteHeaderPanelLink"><a href="/company/contact.html?promoid=JZEGC" id="Company_Contactus">Contact us</a></li>
                        </ul>
            
                        <ul class="SiteHeaderPanelLinkNoBottom">
                            <li class="SiteHeaderPanelLink"><a href="/company.html?promoid=JZPLK" id="Company_Morecompanyinfo">More company info</a></li>
                        </ul>
                    </div>
                </div>
            </div>
            <div class="SiteHeaderDropdownLink SiteHeaderBarItem" id="shBuy">
                <a href="/products/catalog/software._sl_id-contentfilter_sl_catalog_sl_software_sl_mostpopular.html?promoid=KAWQN" id="shBuyLink" class="SiteHeaderBarLink">Buy</a>
                <div class="SiteHeaderDropPanel SiteHeaderDropdown-Single" id="BuyPanel">
                    <div class="SiteHeaderRow">
                        <ul class="SiteHeaderPanelLinkNoBottom">
                            <li class="SiteHeaderPanelLink"><a href="/products/catalog/software.html?marketSegment=COM&promoid=KAWQO" id="Buy_Forpersonalandprofessionaluse">For personal and professional use</a></li>
                            <li class="SiteHeaderPanelLink"><a href="/products/catalog/software._sl_id-contentfilter_sl_catalog_sl_education_sl_alledu.html?marketSegment=EDU&promoid=KAWQP" id="Buy_Forstudentseducatorsandstaff">For students, educators, and staff</a></li>
                            <li class="SiteHeaderPanelLink"><a href="/products/small-business-pricing/software-catalog._sl_id-contentfilter_sl_catalog_sl_software_sl_creativecloudmembership.html?marketSegment=COM&promoid=JOLJE" id="Buy_Forsmallandmediumbusinesses">For small and medium businesses</a></li>
                            <li class="SiteHeaderPanelLink"><a href="/volume-licensing.html?promoid=KAWQQ" id="Buy_VolumeLicensing">Volume Licensing</a></li>
                            <li class="SiteHeaderPanelLink"><a href="/products/discount-software-coupons.html?promoid=KAWQR" id="Buy_Specialoffers">Special offers</a></li>
                            <li class="SiteHeaderPanelLink"><a href="http://success.adobe.com/en/na/programs/rfi/dm_sales_inquiries.html?promoid=KAWSG" target="_blank" id="Buy_AdobeMarketingCloudsales">Adobe Marketing Cloud <span class="SiteHeaderIconNewWindowNoWrap">sales<span class="SiteHeaderIconNewWindow"> [opens in a new window]</span></span></a></li>
                        </ul>
                    </div>
                </div>
            </div>

			<!--
            <div id="tooltipStrings" class="SiteHeaderTooltipStrings LayoutHidden">
                <span id="tooltipStringExpandMenu">Expand menu</span>
                <span id="tooltipStringOpenLink">Open link</span>
            </div>
			-->
            
            <a href="/go/gnav_search" id="shSearchButton" class="SiteHeaderBarItem SiteHeaderSearchButton" style="display: none;">Search</a>
            <div class="SiteHeaderBarItem SiteHeaderBarItemLast">&nbsp;</div>
            <div id="site-search" class="SiteHeaderSearch">
                <input title="Search" type="text" id="search-input" name="term" maxlength="1000" />
                <input type="hidden" id="searchbuddy-loc" name="loc" value="en_us" />
                <button type="submit" id="search-submit" class="icon-replace search">Search</button>
            </div>
        </div>
        <div class="SiteHeaderUser">
            <div id="shSignInBlock">
                <a id="shInfo" class="SiteHeaderUserItem SiteHeaderInfo">Info</a>
                <a href="/account/sign-in.adobedotcom.html" id="shSignIn" class="SiteHeaderUserItem LinkStrong">Sign in</a>
                <div class="SiteHeaderPopPanelShadow width-250" id="InfoPanelShadow" style="display: none;"></div>
                <div class="SiteHeaderPopPanel width-250" id="InfoPanel" style="display: none;">
                    <div class="SiteHeaderPanelRow">
                        <span class="SiteHeaderPanelHeader">Why sign in?</span>
                        Sign in to manage your account and access trial downloads, product extensions, community areas, and more.
                    </div>
                </div>
            </div>
        
            <a href="/account.html" id="shWelcome" class="SiteHeaderUserItem SiteHeaderArrow LinkStrong" style="display: none;">Welcome, <span id="screenName"></span></a>
        
            <div class="SiteHeaderPopPanelShadow" id="WelcomePanelShadow" style="display: none;"></div>
            <div class="SiteHeaderPopPanel" id="WelcomePanel" style="display: none;">
                <div class="SiteHeaderPanelRow SiteHeaderPanelLink" id="shMyAccount">
                    <a class="SiteHeaderPanelHeader" href="/go/gnavtray_myadobe_en_us">My Adobe</a>
                </div>
                <div class="SiteHeaderPanelRow SiteHeaderPanelLink" id="shMyOrders">
                    <a class="SiteHeaderPanelHeader" href="/go/gnavtray_myadobe_myorders_en_us">My orders</a>
                </div>
                <div class="SiteHeaderPanelRow SiteHeaderPanelLink" id="shMyInformation">
                    <a class="SiteHeaderPanelHeader" href="/go/gnavtray_myadobe_myinformation_en_us">My information</a>
                </div>
                <div class="SiteHeaderPanelRow SiteHeaderPanelLink" id="shMyPreferences">
                    <a class="SiteHeaderPanelHeader" href="/go/gnavtray_myadobe_mypreferences_en_us">My preferences</a>
                </div>
                <div class="SiteHeaderPanelRow SiteHeaderPanelLink" id="shMyProductsServices">
                    <a class="SiteHeaderPanelHeader" href="/go/gnavtray_myadobe_myproducts_services_en_us">My products and services</a>
                </div>
                <div class="SiteHeaderPanelRow SiteHeaderPanelLink" id="shSignOut">
                    <a class="SiteHeaderPanelHeader" id="shSignOutLink" href="/cfusion/membership/logout.cfm">Sign out</a>
                </div>
            </div>
        
            <div id="MyCartLinkContainer">
                <a href="/go/gnav_mycart_en_us" id="shMyCart" class="SiteHeaderUserItem SiteHeaderCart">My cart<span id="cartQuantity"></span></a>
            </div>
        
            <a href="/privacy.html" id="shPrivacy" class="SiteHeaderUserItem">Privacy</a>
            <a href="/go/gnav_myadobe_en_us" id="shMyAdobe" class="SiteHeaderUserItem">My Adobe</a>
        </div>
    </div>
</form>

<div id="SiteHeaderMobile" class="SiteHeaderMobile LayoutHidden LayoutSlim Text TextSmall">
    <a href="/go/gnav_adobe_logo_en_us" id="shHomeMobile" class="SiteHeaderHome SiteHeaderHomeMobile">Adobe</a>

    <div class="SiteHeaderBar SiteHeaderBarMobile" id="shBarMobile">
        <span class="SiteHeaderBarItemMobile SiteHeaderBarItemMobileNoLeftBorder" id="shProductsMobileSpan"><a href="/go/gnav_products_en_us" id="shProductsMobile" class="SiteHeaderBarLink">Products</a></span>
        <span class="SiteHeaderBarItemMobile" id="shSectionsMobileSpan"><a href="#" id="shSectionsMobile" class="SiteHeaderArrowMobile SiteHeaderBarLink">Sections</a></span>
        <span class="SiteHeaderBarItemMobile" id="shSectionsMobileBuy"><a href="/go/gnav_store_en_us" id="shBuyMobile" class="SiteHeaderBarLink">Buy</a></span>
        <span class="SiteHeaderBarItemMobile SiteHeaderBarItemMobileNoRightBorder SiteHeaderBarItemMobileNoPadding">&nbsp;</span>
        <span class="SiteHeaderBarItemMobile SiteHeaderBarItemMobileNoRightBorder SiteHeaderBarItemFloatRight" id="shSearchMobileSpan"><a href="/go/gnav_search" id="shSearchMobile" class="SiteHeaderSearchButtonMobile">Search</a></span>
        <span class="SiteHeaderBarItemMobile SiteHeaderBarItemMobileNoLeftBorder SiteHeaderBarItemFloatRight SiteHeaderBarItemMobileNoPadding">&nbsp;</span>
    </div>
    <div class="SiteHeaderBarMobileExtend" id="shBarExtend">
        <div id="shBarExtendSections" style="display: none;">
            <div id="shBarExtendSections1" class="SiteHeaderBarMobileExtendSections">
                <a href="/go/gnav_solutions_en_us" id="shSectionsSolutionsMobile" class="SiteHeaderBarExtendSectionsItem SiteHeaderBarLink">Solutions</a>
                <a href="/go/gnav_company_en_us" id="shSectionsCompanyMobile" class="SiteHeaderBarExtendSectionsItem SiteHeaderBarLink">Company</a>
            </div>
            <div id="shBarExtendSections2" class="SiteHeaderBarMobileExtendSections">
                <a href="/go/gnav_help_en_us" id="shSectionsHelpMobile" class="SiteHeaderBarExtendSectionsItem SiteHeaderBarLink">Help</a>
                <a href="/go/gnav_learning_en_us" id="shSectionsLearningMobile" class="SiteHeaderBarExtendSectionsItem SiteHeaderBarLink">Learning</a>
            </div>
        </div>
        <div id="shBarExtendSearch" style="display: none;">
            <form id="globalnav-search-mobile" class="SiteHeaderSearchMobileForm" name="globalnav-search-mobile" method="get" action="/go/gnav_search" accept-charset="utf-8">
                <input title="Search" type="text" id="search-input-mobile" name="term" maxlength="1000" />
                <button type="submit" id="search-submit-mobile">Search</button>
            </form>
        </div>
    </div>
    <div class="SiteHeaderUser">
        <a href="/cfusion/membership/index.cfm?loc=en_us&amp;nl=1" id="shSignInMobile" class="SiteHeaderUserItem SiteHeaderUserItemMobile LinkStrong">Sign in</a>
        <a href="/cfusion/membership/logout.cfm" id="shSignOutMobile" class="SiteHeaderUserItem SiteHeaderUserItemMobile LinkStrong" style="display: none;">Sign out</a>
        <a href="/privacy.html" id="shPrivacyMobile" class="SiteHeaderUserItem SiteHeaderUserItemMobile">Privacy</a>
        <a href="/go/gnav_myadobe_en_us" id="shMyAdobeMobile" class="SiteHeaderUserItem SiteHeaderUserItemMobile">My Adobe</a>
    </div>
</div>
<!--googleon: index--><div class="hovercart"><div id="HoverCartModal">
		<div class="CartHeaderPopPanelShadow HoverCartwidth" id="CartPanelShadow" style="display: none;">
		<div class="CartHeaderPopPanel HoverCart" id="CartPanel">
			<div id="HoverCartItem" class="RuleHBottom HoverCart-1-3 LayoutBigRowTop" style="display: none">
				<div class="LayoutBreakAfter">
					<div class="HoverCart-1 LayoutHItem">
						<div style="padding-left:60px;" class=" LayoutBreakAfter LayoutPullout">
	<div id="HoverCartBoxShotxyz" class="HoverCartBoxShot">
								<a href="">
										<img src="" class="LayoutImage" alt=""/>
									</a>
								</div>
							<div style="float:left;width:100%" class="CPodCostCell">
							    <span class="TextStrong ProductName" id="HoverCartHeaderxyz"> 
							    	<a href="#">
							        	</a>
							    </span>
								<div class="LayoutBigRowBottom" id="HoverCartDescriptionxyz">
									</div>
                                <span id="HoverCartPreOrderHardGoodMsgxyz" style="display:none;" class="TextWarning TextPostScript">Preorder Estimated Availability <span id="HoverCartPreOrderHardGoodMsgDatexyz">Date</span>. Your credit card will not be charged until the product is shipped. Estimated availability date is subject to change.</span>
                                <span id="HoverCartPreOrderSoftGoodMsgxyz" style="display:none;" class="TextWarning TextPostScript">Preorder Estimated Availability <span id="HoverCartPreOrderSoftGoodMsgDatexyz">Date</span>. Your credit card will not be charged until the product is ready to download. Estimated availability date is subject to change.</span>

							</div>
						</div>
</div>
					<div class="LayoutHItem HoverCart-2">
						<div class="HoverCartQty">
							Qty: 
							<span id="HoverCartQtyxyz">
								</span>
						</div>
					</div>
                    <div class="LayoutRight">
						<div class="CheckoutCostDark LayoutRight TextRight">
							<span id="HoverCartPricexyz"> 
							</span>
								<span id="HoverCartSubscriptionxyz" class="CheckoutSubscription"> 
								</span>						
                            <div id="HoverCartVatPercentageLabelxyz" class="TextEm TextSmall" style="display:none; max-width: 100px;"><span id="HoverCartVatPercentagePreTextxyz"></span>
                                    <span id="HoverCartVatPercentagexyz"></span></div>                  
                        </div>
					</div>
					
				</div>
				<div class="HoverCartEDUMessage LayoutBigCellBottom" style="display:none">Purchase requires verification of academic eligibility</div>
			</div>
			<div id="HoverCartContainer" class="LayoutBreakAfter" style=""></div>
			<a id="HoverCartMoreItems" class="LayoutBreakAfter" style="text-align: center;" href="/cart.html"></a>
            <div  id="HoverCartButtons" class="HoverCart-1-3">
                <table border="0" align="right" width="70%">
                    <tr>
                        <td>
                            <div class="TextRight HoverCartSubTotal">Subtotal</div>
                            <div id="ExVatLabel" style="display:none" class="TextEm TextSmall TextRight"></div>
                        </td>
                        <td>
                            <div class="LayoutRight TextRight">
                                <div class="CheckoutCostDark">
                                    <span id="HoverCartSubTotal">
                                    </span>
                                        </div>
                            </div>
                        </td>
                    </tr>
                    <tr id="HoverCartPromotionsRow">
                        <td>
                            <div class="TextRight HoverCartPromotionsLabel HoverCartSubTotal">Promotions</div>
                        </td>
                        <td>
                            <div class="LayoutRight TextRight">
                                <div class="CheckoutCostDark">
                                    <span id="HoverCartPromotions">
                                    </span>
                                        </div>
                            </div>
                        </td>
                    </tr>
                    <tr id="HoverCartShippingRow">
                        <td>
                            <div class="TextRight HoverCartShippingLabel HoverCartSubTotal">Estimated shipping</div>
                        </td>
                        <td>
                            <div class="LayoutRight TextRight">
                                <div class="CheckoutCostDark">
                                    <span id="HoverCartShipping">
                                    </span>
                                        </div>
                            </div>
                        </td>
                    </tr>
                    <tr id="HoverCartVATRow">
                        <td>
                            <div class="TextRight HoverCartVATLabel HoverCartSubTotal">Tax</div>
                        </td>
                        <td>
                            <div class="LayoutRight TextRight">
                                <div class="CheckoutCostDark">
                                    <span id="HoverCartVat">
                                    </span>
                                        </div>
                                <div id="CartTaxHeader">
                                    Calculated at checkout</div>
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td><div class="RuleH"></div></td>
                        <td><div class="RuleH"></div></td>
                    </tr>
                    <tr>
                        <td>
                            <div class="TextRight HoverCartTotalLabel HoverCartSubTotal">Total</div>
                        </td>
                        <td>
                            <div class="LayoutRight TextRight">
                                <div class="CheckoutCostDark">
                                    <span id="HoverCartTotal">
                                    </span>
                                        </div>
                            </div>
                        </td>
                    </tr>
                </table>
				<div class="LayoutBreak"></div>		
				
				<div class="HoverCart-1-3 LayoutRight LayoutCellTop LayoutBreakAfter">
						<a href="/cart.html" id="HoverCartCheckOut" class="CartButtonYellow CartShopCheckOut LayoutRight"><span class="CartBuyIconText">Review and Checkout</span></a>
				</div>
			</div>
		</div>
		</div>
	</div>
<script>
	/*global jQuery,adobe*/
	jQuery.createNs("Adobe.Cart.ShoppingCart");

	Adobe.Cart.ShoppingCart.HoverCart = {
			
		MaxItems: "4",

		DisplayTime: "5000",

		MoreItemsTextSingular: "() more item in your cart",

		MoreItemsTextPlural: "() more items in your cart",

		MonthToMonthText: "per month",

		YearlyText: "per year"
    };

    Adobe.Cart.TaxLabels = {
            TaxInclusiveText    : "",
            TaxNotApplicable    : "Tax not applicable"
	};

	Adobe.Cart.ShoppingCart.GlobalVars = {
			
		CountryCode: 			"US",

		MarketSegment: 			"COM",

		AkamaiURLPrefix: 		"http://wwwimages.adobe.com/www.adobe.com",

		PriceMonthText:			"per month",

		PriceYearText:			"per year",

		FullSubMonthText:		"Month-to-month",

		FullSubYearText:		"One-year",

		SubMonthText:			"Monthly",

		SubYearText:			"Annual",

		SubscriptionItemText:	"NONE",

		TermTypeMonth:			"MONTH",

		TermTypeYear:			"YEAR",

		BackupDVDParent:		"_PARENT",
		/*
			params: {
				cart,
				price,
				categoryPath,
				originalPrice,
				storeName,
				locale,
				usePrecision,
				type,
				taxCode,
				delimiter,
				showCentDelim,
				distributionMethod
			}
		*/
		getPriceLabel: function(params) {
			var currency = params.cart.currency;
			var params = {
				storeName: params.storeName,
				locale: params.locale,
				productKey: params.categoryPath,
				priceObject: {
					price: {
						orginalPriceWithoutTax: params.originalPrice,
						priceWithoutTax: params.price,
						taxCode: params.taxCode || ""
					},
					priceTypeKey: params.distributionMethod
				},
				currencyObject: {
					delimiter: params.delimiter || ",",
					formatString: currency.FORMATSTRING,
					iso3Code: currency.CODE,
					symbol: currency.SYMBOL,
					usePrecision: params.usePrecision
				},
				showCentDelim : params.showCentDelim || false,
				type: params.type
			};
			return params;
		},

		isSubscription: function(serviceCommitment, termType) {
			return (serviceCommitment == this.SubscriptionItemText && 
					(termType == this.TermTypeMonth || termType == this.TermTypeYear));
		},

		subscriptionItem: function(serviceCommitment, termType) {
			return (termType == this.TermTypeMonth && 
					(serviceCommitment == this.TermTypeMonth || serviceCommitment == this.TermTypeYear));
		},

		getSubscriptionText: function(serviceCommitment, termType) {
			if (this.isSubscription(serviceCommitment, termType)) {
				if (termType === this.TermTypeMonth) {
					return this.SubMonthText;
				} else if (termType === this.TermTypeYear) {
					return this.SubYearText;
				}	
			} else if (this.subscriptionItem(serviceCommitment, termType)) {
				if (serviceCommitment === this.TermTypeMonth) {
					return this.FullSubMonthText;
				} else if (serviceCommitment === this.TermTypeYear) {
					return this.FullSubYearText;
				}	
			}
			return "";
		},

		getSubscriptionPriceText: function(serviceCommitment, termType) {
			if (this.isSubscription(serviceCommitment, termType)) {
				if (termType === this.TermTypeMonth) {
					return this.PriceMonthText;
				} else if (termType === this.TermTypeYear) {
					return this.PriceYearText;
				}	
			} else if (this.subscriptionItem(serviceCommitment, termType)) {
				return this.PriceMonthText;	
			}
			return "";
		}
		
	};
</script>
</div>
<div id="modalContent" style="display:none;"></div>
</div>
<!--googleon: all--></div>
    <div class="Link" id="top">
    <div class="Link LayoutBreakAfter">
        <div class="parbase compbase breadcrumb"><div class="LayoutHeader LayoutBreakAfter Link">
	<div class="LayoutHeaderPath">
		<div class="LayoutCellSides LinkStrong LayoutH IconAlign">
			<span class="LayoutHItem LayoutSmallGutterRight">
						<a href="/devnet.html">
							Adobe Developer Connection</a>
					</span>
					<span class="LayoutSmallGutterRight LayoutHItem">/</span>
				<span class="LayoutHItem LayoutSmallGutterRight">
						<a href="/devnet/flex.html">
							Flex Developer Center</a>
					</span>
					<span class="LayoutSmallGutterRight LayoutHItem">/</span>
				</div>
	</div>
</div>
</div>
<div class="LayoutGrid-1-3 LayoutSlimGrid-1-2">
            <h1 class="LayoutCellSides LayoutSmallRow TextH1">
                Introducing skinning in Flex 4</h1>
        </div>
    </div>
</div>
<div class="LayoutRow Link RuleH">
    <div class="LayoutBreakAfter">
        <!-- Article Leaf -->
        <div class="ArticleGrid-1 LayoutSlimGrid-1-2 ArticleWideGrid-1 TextSmall">
                <div class="LayoutCellSides LayoutRow">
                    <div class="articleAuthorDisplay authordisplay"><h2 class="TextH5 LayoutRow">
        by&nbsp;<a href="/devnet/author_bios/ryan_frishberg.html">Ryan Frishberg</a></h2>
    <div class="LayoutRow">
        <img title="" alt="Ryan Frishberg" class="ImageShadow LayoutImage" src="/content/dotcom/en/devnet/author_bios/ryan_frishberg/_jcr_content/image.adimg.mw.160.jpg/1296456393374.jpg"/></div>
    </div>
</div>
                <div class="LayoutCellSides LayoutRow">
                    <div class="parbase compbase articleTOC singlepagetoc"><div class="LayoutRow">
            <h2 class="TextH5 LayoutSmallRow">Content</h2>
            <ul class="LayoutSmallRow">
                <li class="LayoutSmallRow ListItemIndent">
                            <a href="#articlecontentAdobe_numberedheader">
                                Writing a simple button skin</a>
                        </li>
                    <li class="LayoutSmallRow ListItemIndent">
                            <a href="#articlecontentAdobe_numberedheader_0">
                                Introducing the skinning contract</a>
                        </li>
                    <li class="LayoutSmallRow ListItemIndent">
                            <a href="#articlecontentAdobe_numberedheader_1">
                                Skinning contract continued: skin parts</a>
                        </li>
                    <li class="LayoutSmallRow ListItemIndent">
                            <a href="#articlecontentAdobe_numberedheader_2">
                                Creating a skinnable component</a>
                        </li>
                    </ul>
        </div>

    </div>
</div>
                <div class="LayoutCellSides LayoutRow">
                    <div class="articleTools articletools"><div class="LayoutRow LayoutCellVSides">
                    <h2 class="TextH5 LayoutSmallRow">Modified</h2>
                    <p>6 July 2009</p>
                </div>
            <ul class="LayoutRow">
            </ul>
     </div>
</div>
                <div class="LayoutRow">
                    <div class="articleCommentSummary commentsummary"><div class="LayoutRow LayoutCellSides">
    <div id="articleRankAndCommentSummary"></div>
</div>
</div>
</div>
                <div class="LayoutRow">
                    <!-- Page Tools -->
                    <div class="pagetools pageTools"><div class="LayoutBreakAfter">
    <div class="LayoutRow LayoutBreakAfter TextH5">
	<table class="LayoutMaxH">
        <tbody>
            <tr>
                <td class="PanelFillDark">
					<h2 class="TextH5 LayoutCellSides LayoutSmallCellVSides">
                        		Page tools</h2>
					    </td>
                </tr>
        </tbody>
    </table>
</div>
<div class="LayoutCellSides">
            <div class="LayoutRow">
                    <div id="PageTools" style="padding-left:23px;" class=" LayoutBreakAfter LayoutPullout">
	<div class="LayoutSmallRowBottom LayoutBreakAfter">
                                <div style="width:16px;float:left;clear:left;position:relative;left:-23px;margin-right:-23px">
									<a class="Facebook-button Icon IconFacebook" href="http://www.facebook.com/sharer.php"></a>
                                </div>
                                <div style="float:left;width:100%">
                                    <a href="http://www.facebook.com/sharer.php" class="Facebook-button" title="Share on Facebook" target="_blank">Share on Facebook</a></div>
                            </div>
                        <div class="LayoutSmallRowBottom LayoutBreakAfter">
                                <div style="width:16px;float:left;clear:left;position:relative;left:-23px;margin-right:-23px">
									<a class="Twitter-button Icon IconTwitter" href="http://twitter.com/"></a>
                                </div>
                                <div style="float:left;width:100%">
                                    <a href="http://twitter.com/" class="Twitter-button" title="Share on Twitter" target="_blank">Share on Twitter</a></div>
                            </div>
                        <div class="LayoutSmallRowBottom LayoutBreakAfter">
                                <div style="width:16px;float:left;clear:left;position:relative;left:-23px;margin-right:-23px">
									<a class="LinkedIn-button Icon IconLinkedIn" href="http://www.linkedin.com/"></a>
                                </div>
                                <div style="float:left;width:100%">
                                    <a href="http://www.linkedin.com/" class="LinkedIn-button" title="Share on LinkedIn" target="_blank">Share on LinkedIn</a></div>
                            </div>
                        <div class="LayoutSmallRowBottom LayoutBreakAfter">
                                <div style="width:16px;float:left;clear:left;position:relative;left:-23px;margin-right:-23px">
									<a class="Bookmark-button Icon IconBookmark" href="#"></a>
                                </div>
                                <div style="float:left;width:100%">
                                    <a class="Bookmark-button" href="#">Bookmark</a>
                                </div>
                            </div>
                        <div class="LayoutSmallRowBottom LayoutBreakAfter">
                                <div style="width:16px;float:left;clear:left;position:relative;left:-23px;margin-right:-23px">
									<a class="Print-button Icon IconPrint" href="#"></a>
                                </div>
                                <div style="float:left;width:100%">
                                    <a class="Print-button" href="#">Print</a>
                                </div>
                            </div>
                        </div>
</div>
            </div>
            </div>
</div>
</div>
                <div class="LayoutCellSides LayoutRow">
                    <!-- Article Community -->
                    <div class="articletags articleTags"><div class="LayoutRow">
             	<div class="LayoutH LinkWeak TextTag">
                <a href="/devnet/tagsearch.tsb.prod-_sl_flex_v_.tse.html" class="LayoutHItem LayoutHItem PanelFillMedium LayoutSmallGutterRight LayoutSmallRow LayoutSmallCellSides" title="Flex">Flex</a><a href="/devnet/tagsearch.tsb.tag-ADC%2BKeywords_c_fxg.tse.html" class="LayoutHItem LayoutHItem PanelFillMedium LayoutSmallGutterRight LayoutSmallRow LayoutSmallCellSides" title="FXG">FXG</a><a href="/devnet/tagsearch.tsb.tag-ADC%2BKeywords_c_skinning.tse.html" class="LayoutHItem LayoutHItem PanelFillMedium LayoutSmallGutterRight LayoutSmallRow LayoutSmallCellSides" title="skinning">skinning</a></div>
            </div>
        </div>
</div>
                <div class="LayoutCellSides LayoutRow">
                          <div class="parbase adcFeedBack compbase adcfeedback"><script type="javascript">
                //<![CDATA[
                    s_tagEnv = 'dev';
                //]]>
              </script>
        <script src="http://wwwimages.adobe.com/www.adobe.com/include/script/article-compressed.js"></script>

        <div id="helpful-pod">
            <div id="helpful" class="collapsed">
              <div id="helpfulspan">Was this helpful?</div>
              <input type="radio" name="feedback" id="radioyes" onClick="showForm();"/><span id="yesspan" class="radio-option">Yes</span> &#160;
              <input type="radio" name="feedback" id="radiono" onClick="showForm();"/><span id="nospan" class="radio-option">No</span>
              <textarea title="(Optional) Please let us know how we can improve this page. " id="feedbacktext" placeholder="" rows="5" cols="25" style="font-family:sans-serif;display:none"></textarea>
              <button id="submitButton" onClick="submitForm();" style="display:none">Submit</button>
              <button id="noCommentButton" onClick="hideForm();" style="display:none">No comment</button>
              <br clear="both">
              <div id="termsofuse"><p>By clicking Submit, you accept the <a href="/misc/terms.html">Adobe Terms of Use</a>.</p>
</div>
            </div>
            <div id="fold">&nbsp;</div>
        </div>
        <div id="helpful-thankyou" class="thankyou">Thanks for your feedback.</div>

        <script>
        //<![CDATA[
            // Send CHL-specific data to SiteCatalyst
            var s_chl = s_gi("mxchlprod");
            var urlMatch = /(https?:\/\/)([-\w\.]+)+(:\d+)?(\/([\w\/_\.]*))(index.html)?(\?\S+)?(#\S+)?/;
            var adobeMatch = /(https?:\/\/)([-\w\.]+)+(\.adobe\.com)/;
            var adobeLocaleMatch = /^\/(ae|bg|cz|dk|de|gr|es|ee|fi|fr|il|hr|hu|it|jp|kr|lt|lv|no|nl|pl|br|ro|ru|sk|si|se|tr|ua|cn|tw)\/.+/;
            var cqLocaleMatch = /^\/content\/help\/(ae|bg|cz|dk|de|gr|es|ee|fi|fr|il|hr|hu|it|jp|kr|lt|lv|no|nl|pl|br|ro|ru|sk|si|se|tr|ua|cn|tw)\/.+/;
            var ua = navigator.userAgent.toLowerCase();
            s_chl.channel = "helpx";
            s_chl.eVar3 = window.location.toString().replace(/[\?,#](.*)/, "");
            s_chl.pageName = s_chl.eVar11 = document.title;
            if ( typeof(omtrPageName) != 'undefined' && omtrPageName.length > 0 ) {
                s_chl.pageName = s_chl.eVar11 = omtrPageName;
            }
           // s_chl.list1 = omtrProductList.replace(/,/g,":");
            var omtrLocale = "en";
            if (adobeLocaleMatch.test(location.pathname)) {
                var matchArray = adobeLocaleMatch.exec(location.pathname).slice();
                omtrLocale = matchArray[1];
                if ( typeof(matchArray[1]) != 'undefined') {
                    omtrLocale = matchArray[1];
                }
            }
            else if (cqLocaleMatch.test(location.pathname)) {
                var matchArray = cqLocaleMatch.exec(location.pathname).slice();
                omtrLocale = matchArray[1];
                if ( typeof(matchArray[1]) != 'undefined') {
                    omtrLocale = matchArray[1];
                }
            }

            s_chl.eVar8 = omtrLocale;
            if (omtrLocale != "en") {
                s_chl.eVar9 = document.title;
            }
            // Transmit
            // The s_gs() call in compressed.js causes problems with any .t() call in any report suite
            function s_gs(){}
            s_chl.t();

            function showForm(){
                if (ua.indexOf('msie 6') == -1 ){
                    $('#helpfulspan').hide();
                    $('#radioyes').hide();
                    $('#radiono').hide();
                    $('#yesspan').hide();
                    $('#nospan').hide();
                    $('#feedbacktext').autofill();
                    $('#helpful').animate({width:'420px', height: '185px'});
                    $('#helpful').removeClass('collapsed');
                    $('#helpful').addClass('expanded');
                    $('#fold').css('background-position', '-12px 0');
                    displayTextField();
                }else{
                    submitForm();
                }
            }



            $(document).ready(function() {
                var feedbackLocales = "en, jp, fr, de, it, se, es, nl , dk, br, no, fi";
                if ( feedbackLocales.indexOf( omtrLocale ) > -1 ){
                $('#helpful-pod').fadeIn();
                    $('#helpful-pod').animate({
                    opacity: 1,
                   top: '+=20'},
                    1500);
                }
            });

        // ]]>
        </script>
    </div>
</div>
                <div class="LayoutBreak"></div>
        </div>
        <!-- Main Content -->
        <div class="LayoutSlimGrid-1-2 ArticleGrid-2-4 ArticleWideGrid-2-6">
            <div class="ArticleWideGrid-2-4">
                <div class="articlerequirements articlePrerequistes"><div class="PanelFillMedium PanelBorder LayoutRow TextSmall">
			<div id="requirements-title" class="LayoutCell Link">
				<h2 class="TextH5">
					<span class="LayoutSmallGutterRight Icon IconSmallerAdd"></span>
					Requirements</h2>
			</div>
			<div id="requirements-content" class="LayoutBreakAfter">
				<div class="ArticleGrid-2">
					<div class="LayoutCellSides">
						<h3 class="TextH5 LayoutSmallRowTop">
								Prerequisite knowledge</h3>
							<div class="LayoutRowBottom">
								<p>This article assumes knowledge of the Flex 3 Framework.</p>
</div>
						<h3 class="TextH5 LayoutSmallRowTop">
							User level</h3>
						<p class="LayoutRowBottom">Intermediate</p>
					</div>
				</div>
				<div class="ArticleGrid-3">
						<div class="LayoutCellSides">
							<h3 class="TextH5 LayoutSmallRowTop">
									Required products</h3>
								<ul class="LayoutSmallRowTop LayoutRowBottom">
									<li class="LayoutSmallRow">
												<span class="IconLeft IconSmallDownload"></span>Flex 4<a href="/go/tryflex/"> (Download trial)</a></li>
										</ul>
							</div>
					</div>
				<div class="ArticleGrid-4">
							<div class="LayoutCellSides">
								<h3 class="TextH5 LayoutSmallRowTop">
									Sample files</h3>
								<ul class="LayoutSmallRowTop LayoutRowBottom">
									<li class="LayoutSmallRow"><a href="/content/dotcom/en/devnet/flex/articles/flex4_skinning/_jcr_content/articlePrerequistes/multiplefiles/node_1275452990789/file.res/flex4_skinning_sample2[1].zip"><span class="LayoutSmallGutterRight Icon IconSmallDownload"></span>flex4_skinning_sample2.zip  </a>
														  (4642 KB)</li>
														  <ul class="LayoutGutterLeft"><li class="LayoutGutterLeft">
														  </li></ul>
														</ul>
							</div>
						</div>
					</div>
        </div>
    <script>
    adobe.fn.panelToggle("requirements-title", "requirements-content", true);
</script>
<script>
    adobe.fn.panelToggle("requirements-title", "requirements-content", true);
</script>
</div>
<div class="LayoutGrid-1-4 LayoutSlimGrid-1-2 LayoutBreakAfter">
                    <div class="parsys articlecontentAdobe"><div id="articlecontentAdobe">
<a name="articlecontentAdobe_text" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>One of the main themes for the Flex 4 (codename: Gumbo) release is &quot;Design in Mind&quot;, and skinning is a big part of that theme. Flash Player is the delivery mechanism for some of the most creative work to be found on the web today. However, Flex applications have gained a reputation for looking too similar to each other, as many developers choose to use the Flex default look and feel (known as Halo) as opposed to applying extensive styling or skinning.</p>
<p>Flex 4 makes it easier to completely change the look and feel of an application. The new skinning architecture builds on top of other changes in Flex 4 and provides a clean separation between the logic and visual elements of a component. Because of this, none of the components in Flex 4 contains any information about their visual appearance. All of that information is contained in the skin file, and thanks to FXG and the new states syntax, the new skin files can be completely written in MXML, making them easier to read and write, as well as easier to access with tools.</p>
<p>In this article, you'll learn about the improvements to the skinning architecture in Flex 4. By writing a basic skin for a button, you'll learn a little bit about FXG and the new states syntax. Next, you'll learn about the contract a component and a skin use to interact with each other through the process of skinning a slider. Lastly, you'll delve into skinnable components as you create a new component ripe for skinning.</p>
<p>Note: Throughout this document, the term Halo components refers to components originally included in Flex 3. The term Spark components refers to the new set of components in Flex 4.</p>
</div>
				</div>
<a name="articlecontentAdobe_numberedheader" style="visibility:hidden"></a><div class="parbase compbase numberedheader section"><h3 class="TextH3 LayoutCellSides LayoutRow">
        <a id="articlecontentAdobe_numberedheader"></a>
        Writing a simple button skin</h3>
</div>
<a name="articlecontentAdobe_text_0" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>FXG is a declarative markup language for vector graphics built to take advantage of Flash Player. With the new markup, it is easy to create a custom button. For this button, start with a simple rectangle with text inside of it (see Figure 1).</p>
<p><b>Sample1.mxml</b></p>
</div>
				</div>
<a name="articlecontentAdobe_codeblock" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
        <code class="CodeBlock">&lt;?xml version=&#034;1.0&#034; encoding=&#034;utf-8&#034;?&gt;
&lt;s:Application xmlns:fx=&#034;http://ns.adobe.com/mxml/2009&#034;
xmlns:s=&#034;library://ns.adobe.com/flex/spark&#034;&gt;
    &lt;s:Group verticalCenter=&#034;0&#034; horizontalCenter=&#034;0&#034;&gt;
        &lt;s:Rect id=&#034;rect&#034; radiusX=&#034;4&#034; radiusY=&#034;4&#034; top=&#034;0&#034; 
           right=&#034;0&#034; bottom=&#034;0&#034; left=&#034;0&#034;&gt;
           &lt;s:fill&gt;
               &lt;s:SolidColor color=&#034;0x77CC22&#034; /&gt;
           &lt;/s:fill&gt;
           &lt;s:stroke&gt;
               &lt;s:SolidColorStroke color=&#034;0x131313&#034; weight=&#034;2&#034;/&gt;
           &lt;/s:stroke&gt;
        &lt;/s:Rect&gt;
        
        &lt;s:Label text=&#034;Button!&#034; color=&#034;0x131313&#034; 
                textAlign=&#034;center&#034; verticalAlign=&#034;middle&#034;
                horizontalCenter=&#034;0&#034; verticalCenter=&#034;1&#034;
                left=&#034;12&#034; right=&#034;12&#034; top=&#034;6&#034; bottom=&#034;6&#034;
        /&gt;
    &lt;/s:Group&gt;
&lt;/s:Application&gt;</code>
    </div>
</div>
<a name="articlecontentAdobe_image" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
	<img title="The sample1 button " alt="The sample1 button " class="cq-dd-image  LayoutImage LayoutRow " src="/content/dotcom/en/devnet/flex/articles/flex4_skinning/_jcr_content/articlecontentAdobe/image.adimg.mw.81.jpg/1279877233559.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
        Figure 1. The sample1 button</div>
</div>
<a name="articlecontentAdobe_text_1" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>If you're familiar with Flex 3, you'll be familiar with the syntax above, though you might not be familiar with the specific components used. The Group container is the basic, chromeless container in Spark. <code>Rect</code> is a new FXG graphic primitive, and it's what you'd expect—a rectangle. The last component in the document, Label, is a new text component in Spark. The MXML reads just like a description of the component—it's a rectangle with rounded corners that has a 1-pixel dark-gray stroke and a green fill with some text in the center.</p>
<p>One of the great things about FXG is that not only is it much easier to understand than programmatic drawing instructions, it is also much more toolable because of the structure of XML. For more info about FXG, see the <a href="http://opensource.adobe.com/wiki/display/flexsdk/FXG+1.0+Specification" target="_blank">FXG specification</a>.</p>
<h3>Converting your Button graphic to a Button skin</h3>
<p>So far, the MXML document is just static artwork with no interactivity. It doesn't yet take advantage of the new skinning features in Flex 4. For that, you need to hook it up to the Button component and use it as a skin. To create a skin file for Spark, create a new MXML file with <code>Skin</code> as the root tag. Then, copy in the graphics code from above:</p>
<p><b>ButtonSkin1.mxml</b></p>
</div>
				</div>
<a name="articlecontentAdobe_codeblock_0" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
        <code class="CodeBlock">&lt;?xml version=&#034;1.0&#034; encoding=&#034;utf-8&#034;?&gt;
&lt;s:Skin xmlns:fx=&#034;http://ns.adobe.com/mxml/2009&#034; xmlns:s=&#034;library://ns.adobe.com/flex/spark&#034; alpha.disabled=&#034;.5&#034;&gt;
 
    &lt;!-- states --&gt;
    &lt;s:states&gt;
        &lt;s:State name=&#034;up&#034; /&gt;
        &lt;s:State name=&#034;over&#034; /&gt;
        &lt;s:State name=&#034;down&#034; /&gt;
        &lt;s:State name=&#034;disabled&#034; /&gt;
    &lt;/s:states&gt;
    
    &lt;!-- border and fill --&gt;
    &lt;s:Rect id=&#034;rect&#034; radiusX=&#034;4&#034; radiusY=&#034;4&#034; top=&#034;0&#034; right=&#034;0&#034; bottom=&#034;0&#034; left=&#034;0&#034;&gt;
        &lt;s:fill&gt;
           &lt;s:SolidColor color=&#034;0x77CC22&#034; /&gt;
        &lt;/s:fill&gt;
        &lt;s:stroke&gt;
           &lt;s:SolidColorStroke color=&#034;0x131313&#034; weight=&#034;2&#034;/&gt;
        &lt;/s:stroke&gt;
    &lt;/s:Rect&gt;
    
    &lt;!-- text --&gt;
    &lt;s:Label text=&#034;Button!&#034; color=&#034;0x131313&#034; 
            textAlign=&#034;center&#034; verticalAlign=&#034;middle&#034;
            horizontalCenter=&#034;0&#034; verticalCenter=&#034;1&#034;
            left=&#034;12&#034; right=&#034;12&#034; top=&#034;6&#034; bottom=&#034;6&#034;
    /&gt;
&lt;/s:Skin&gt;</code>
    </div>
</div>
<a name="articlecontentAdobe_text_2" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>You'll notice there is one more addition in the file states. I will discuss them a little later.</p>
<p>With your skin file complete, you need to associate it with a Button component. Every skinnable component in the Spark architecture is associated with a skin via the <code>skinClass</code> CSS style that can be set either through style sheets or inline via MXML. In this case, I'll use the latter:</p>
<p><b>Sample2.mxml</b></p>
</div>
				</div>
<a name="articlecontentAdobe_codeblock_1" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
        <code class="CodeBlock">&lt;?xml version=&#034;1.0&#034; encoding=&#034;utf-8&#034;?&gt;
&lt;s:Application xmlns:fx=&#034;http://ns.adobe.com/mxml/2009&#034; xmlns:s=&#034;library://ns.adobe.com/flex/spark&#034;&gt;
    &lt;s:Button verticalCenter=&#034;0&#034; horizontalCenter=&#034;0&#034; skinClass=&#034;ButtonSkin1&#034; 
             click=&#034;trace(&#039;I\&#039;ve been clicked!&#039;)&#034; focusIn=&#034;trace(&#039;focus...on me?&#039;)&#034; /&gt;
&lt;/s:Application&gt;</code>
    </div>
</div>
<a name="articlecontentAdobe_image_0" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
	<img title="The sample2 button" alt="The sample2 button" class="cq-dd-image  LayoutImage LayoutRow " src="/content/dotcom/en/devnet/flex/articles/flex4_skinning/_jcr_content/articlecontentAdobe/image_0.adimg.mw.81.jpg/1279877250694.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
        Figure 2. The sample2 button</div>
</div>
<a name="articlecontentAdobe_text_3" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>You've now hooked up the button to a new skin file. The Button component contains all the behavioral logic for the button. It adds the event listeners, dispatches new events, figures out what state the component is in, and so on. The skin doesn't have to deal with any of that and just defines the visuals of the component.</p>
<p>However, the Button doesn't look any different than the static graphic you first created. The button is interactive, but it doesn't appear that way. This is because you haven't yet defined how the button looks in different states.</p>
</div>
				</div>
<a name="articlecontentAdobe_numberedheader_0" style="visibility:hidden"></a><div class="parbase compbase numberedheader section"><h3 class="TextH3 LayoutCellSides LayoutRow">
        <a id="articlecontentAdobe_numberedheader_0"></a>
        Introducing the skinning contract</h3>
</div>
<a name="articlecontentAdobe_text_4" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>A static skin is pretty boring. For something interesting, the skin must be able to interact with the component and vice versa. These two elements interact with each other through the skinning contract. There are three pieces to this: skin states, data, and parts (see Figure 3). On one side, the component defines these three different pieces, and on the other side, the skin reacts to them.</p>
</div>
				</div>
<a name="articlecontentAdobe_image_1" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
	<img title="The skinning contract comprises data, parts, and states." alt="The skinning contract comprises data, parts, and states." class="cq-dd-image  LayoutImage LayoutRow " src="/content/dotcom/en/devnet/flex/articles/flex4_skinning/_jcr_content/articlecontentAdobe/image_1.adimg.mw.650.jpg/1279877280614.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
        Figure 3. The skinning contract comprises data, parts, and states.</div>
</div>
<a name="articlecontentAdobe_text_5" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<h3>Defining skin states</h3>
<p>Each skinnable component in Spark has a set of skin states. You can change the appearance of your skin based on what skin state the component is in. For a Button, there are four basic skin states: <code>up</code>, <code>over</code>, <code>down</code>, and <code>disabled</code>. You can modify the skin to have a different appearance in each of these states (see Figure 4).</p>
<p><b>ButtonSkin2.mxml</b></p>
</div>
				</div>
<a name="articlecontentAdobe_codeblock_2" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
        <code class="CodeBlock">&lt;?xml version=&#034;1.0&#034; encoding=&#034;utf-8&#034;?&gt;
&lt;s:Skin xmlns:fx=&#034;http://ns.adobe.com/mxml/2009&#034;
xmlns:s=&#034;library://ns.adobe.com/flex/spark&#034; alpha.disabled=&#034;.5&#034;&gt;
 
    &lt;!-- states --&gt;
    &lt;s:states&gt;
        &lt;s:State name=&#034;up&#034; /&gt;
        &lt;s:State name=&#034;over&#034; /&gt;
        &lt;s:State name=&#034;down&#034; /&gt;
        &lt;s:State name=&#034;disabled&#034; /&gt;
    &lt;/s:states&gt;
    
    &lt;!-- dropshadow for the down state only --&gt;
    &lt;s:Rect radiusX=&#034;4&#034; radiusY=&#034;4&#034; top=&#034;0&#034; right=&#034;0&#034; bottom=&#034;0&#034; 
        left=&#034;0&#034; includeIn=&#034;down&#034;&gt;
        &lt;s:fill&gt;
           &lt;s:SolidColor color=&#034;0&#034;/&gt;
        &lt;/s:fill&gt;
        &lt;s:filters&gt;
           &lt;s:DropShadowFilter knockout=&#034;true&#034; blurX=&#034;5&#034; blurY=&#034;5&#034; 
           alpha=&#034;0.32&#034; distance=&#034;2&#034; /&gt;   
        &lt;/s:filters&gt;
    &lt;/s:Rect&gt;
    
    &lt;!-- border and fill --&gt;
    &lt;s:Rect id=&#034;rect&#034; radiusX=&#034;4&#034; radiusY=&#034;4&#034; top=&#034;0&#034; right=&#034;0&#034; 
         bottom=&#034;0&#034; left=&#034;0&#034;&gt;
        &lt;s:fill&gt;
           &lt;s:SolidColor color=&#034;0x77CC22&#034; color.over=&#034;0x92D64E&#034; 
           color.down=&#034;0x67A41D&#034;/&gt;
        &lt;/s:fill&gt;
        &lt;s:stroke&gt;
           &lt;s:SolidColorStroke color=&#034;0x131313&#034; weight=&#034;2&#034;/&gt;
        &lt;/s:stroke&gt;
    &lt;/s:Rect&gt;
    
    &lt;!-- highlight on top --&gt;
    &lt;s:Rect radiusX=&#034;4&#034; radiusY=&#034;4&#034; top=&#034;2&#034; right=&#034;2&#034; left=&#034;2&#034; 
        height=&#034;50%&#034;&gt;
        &lt;s:fill&gt;
           &lt;s:LinearGradient rotation=&#034;90&#034;&gt;
               &lt;s:GradientEntry color=&#034;0xFFFFFF&#034; alpha=&#034;.5&#034;/&gt;
               &lt;s:GradientEntry color=&#034;0xFFFFFF&#034; alpha=&#034;.1&#034;/&gt;
           &lt;/s:LinearGradient&gt;
        &lt;/s:fill&gt;
    &lt;/s:Rect&gt;
    
    &lt;!-- text --&gt;
    &lt;s:Label text=&#034;Button!&#034; color=&#034;0x131313&#034; 
            textAlign=&#034;center&#034;
            verticalAlign=&#034;middle&#034;
            horizontalCenter=&#034;0&#034; verticalCenter=&#034;1&#034;
            left=&#034;12&#034; right=&#034;12&#034; top=&#034;6&#034; bottom=&#034;6&#034; 
     /&gt;
&lt;/s:Skin&gt;</code>
    </div>
</div>
<a name="articlecontentAdobe_text_6" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p><b>ButtonSkin2.mxml</b></p>
</div>
				</div>
<a name="articlecontentAdobe_image_2" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
	<img title="&lt;h4&gt;ButtonSkin2.mxml&lt;/h4&gt;" alt="&lt;h4&gt;ButtonSkin2.mxml&lt;/h4&gt;" class="cq-dd-image  LayoutImage LayoutRow " src="/content/dotcom/en/devnet/flex/articles/flex4_skinning/_jcr_content/articlecontentAdobe/image_2.adimg.mw.125.jpg/1279877300467.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
        Figure 4. The four skin states of the Button</div>
</div>
<a name="articlecontentAdobe_text_7" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>Based on what skin state it is in, the component looks different because of how you've defined the skin. This skin file is taking advantage of the new <i>dot syntax</i> for states. This is a new feature in Flex 4, which makes writing state modifications much more clear and concise. The syntax is <code>property.stateName=&quot;value of that property in that state&quot;</code>. For example, <code>alpha.disabled=&quot;.5&quot;</code> means that when the button goes into the <code>disabled</code> skin state, the skin will change the alpha to 50%. In the <code>over</code> and <code>down</code> states, I've defined a different fill color with <code>color.over=&quot;0x92D64E&quot; color.down=&quot;0x67A41D&quot;</code>.</p>
<p>With the new state syntax, there's an <code>includeIn</code> and <code>excludeFrom</code> property on every MXML component. The drop shadow in the button skin is only included in the <code>down</code> state, which gives it a nice pressed look. Also, to jazz up the skin, I've added another rectangle to highlight the top of the button in all states.</p>
<p><b>Note:</b> For more info on the enhanced state syntax in Flex 4, check out the <a href="http://opensource.adobe.com/wiki/display/flexsdk/Enhanced+States+Syntax" target="_blank">new states syntax specification</a>.</p>
<p>Playing around with the button is an interactive experience as the button changes its visual appearance based on its skin state. One thing you will notice, though, is that the component's text is hard-coded to &quot;Button!&quot;. In the next section, you'll see how to hook up the skin to display the component's data, in this case, the Button's <code>label</code> property.</p>
<h3>Grabbing data from the component</h3>
<p>I recommend that you always put <code>HostComponent</code> metadata in your skin. The <code>HostComponent</code> metadata points to the component you're skinning, and it is required to access the component from the skin. When defined, your skin has a <code>hostComponent</code> property that points back to the component. In your Button skin, you can use this <code>hostComponent</code> property to bind to the label property of the button.</p>
<p><b>ButtonSkin3.mxml:</b></p>
</div>
				</div>
<a name="articlecontentAdobe_codeblock_3" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
        <code class="CodeBlock">&lt;?xml version=&#034;1.0&#034; encoding=&#034;utf-8&#034;?&gt;
&lt;s:Skin xmlns:fx=&#034;http://ns.adobe.com/mxml/2009&#034; 
xmlns:s=&#034;library://ns.adobe.com/flex/spark&#034; alpha.disabled=&#034;.5&#034;&gt;
 
    &lt;fx:Metadata&gt;
       [HostComponent(&#034;spark.components.Button&#034;)]
    &lt;/fx:Metadata&gt;
 
    ...
    
    &lt;!-- text --&gt;
    &lt;s:Label text=&#034;{hostComponent.label}&#034; color=&#034;0x131313&#034; 
            textAlign=&#034;center&#034;
            verticalAlign=&#034;middle&#034;
            horizontalCenter=&#034;0&#034; verticalCenter=&#034;1&#034;
            left=&#034;12&#034; right=&#034;12&#034; top=&#034;6&#034; bottom=&#034;6&#034;
     /&gt; 
&lt;/s:Skin&gt;</code>
    </div>
</div>
<a name="articlecontentAdobe_text_8" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>When the button is declared, the text in the skin will be based on the <code>label</code> property.</p>
<p><b>Sample4.mxml:</b></p>
</div>
				</div>
<a name="articlecontentAdobe_codeblock_4" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
        <code class="CodeBlock">&lt;?xml version=&#034;1.0&#034; encoding=&#034;utf-8&#034;?&gt;
&lt;s:Application xmlns:fx=&#034;http://ns.adobe.com/mxml/2009&#034;
xmlns:s=&#034;library://ns.adobe.com/flex/spark&#034;&gt;
    
    &lt;fx:Style&gt;
        @namespace s &#034;library://ns.adobe.com/flex/spark&#034;;
                s|Button {
           skinClass: ClassReference(&#034;ButtonSkin3&#034;);
        }
    &lt;/fx:Style&gt;
 
    &lt;s:layout&gt;
        &lt;s:VerticalLayout /&gt;
    &lt;/s:layout&gt;
    &lt;s:Button label=&#034;Button #1&#034; /&gt;
    &lt;s:Button label=&#034;Button #2&#034; /&gt;
    &lt;s:Button label=&#034;Button #3&#034; /&gt;
&lt;/s:Application&gt;</code>
    </div>
</div>
<a name="articlecontentAdobe_text_9" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>The main application declares three buttons.  Each              button uses the same skin file, <code>ButtonSkin3</code>, because of the CSS type              selector defined.  However, each button has a different label.               Because the skin now pulls the <code>label</code> property to display the text, the              buttons look as you'd expect, with different text (see Figure 5).</p>
</div>
				</div>
<a name="articlecontentAdobe_image_3" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
	<img title="The buttons now display their own labels." alt="The buttons now display their own labels." class="cq-dd-image  LayoutImage LayoutRow " src="/content/dotcom/en/devnet/flex/articles/flex4_skinning/_jcr_content/articlecontentAdobe/image_3.adimg.mw.76.jpg/1279877325371.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
        Figure 5. The buttons now display their own labels.</div>
</div>
<a name="articlecontentAdobe_text_10" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>You've seen two of the three parts of the skinning contract, states and data. Skin states are a way for the component to drive interactions while the skin defines the look and feel of the component in those states. Data, the user-settable properties on the component, can be pulled into the skin through the use of <code>HostComponent</code> metadata and the <code>hostComponent</code> property. In the example above, the skin pulls data (the <code>label</code> property) from the Button component. The other way to hook up the data is by using the skin parts mechanism to push data in to the skin part.</p>
</div>
				</div>
<a name="articlecontentAdobe_numberedheader_1" style="visibility:hidden"></a><div class="parbase compbase numberedheader section"><h3 class="TextH3 LayoutCellSides LayoutRow">
        <a id="articlecontentAdobe_numberedheader_1"></a>
        Skinning contract continued: skin parts</h3>
</div>
<a name="articlecontentAdobe_text_11" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>Skin parts make up the third part of the skinning contract. Each skinnable component in Spark has a set of skin parts that help define the component. In the case of a scrollbar, there are four skin parts: the increment button, the decrement button, the track, and the thumb. In the case of a Button, there is just one skin part, the labelDisplay. This is a part that the Button component asks for. In the Button skin above, rather than binding the text to <code>{hostComponent.label}</code>, if you give the text component an id of <code>labelDisplay</code>, the Button will recognize this skin part and push the label property down into the skin.</p>
<p><b>ButtonSkin4.mxml:</b></p>
</div>
				</div>
<a name="articlecontentAdobe_codeblock_5" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
        <code class="CodeBlock">&lt;?xml version=&#034;1.0&#034; encoding=&#034;utf-8&#034;?&gt;
&lt;s:Skin xmlns:fx=&#034;http://ns.adobe.com/mxml/2009&#034;
xmlns:s=&#034;library://ns.adobe.com/flex/spark&#034; alpha.disabled=&#034;.5&#034;&gt;
 
    &lt;fx:Metadata&gt;
       [HostComponent(&#034;spark.components.Button&#034;)]
    &lt;/fx:Metadata&gt;
 
    &lt;!-- states --&gt;
    &lt;s:states&gt; 
        &lt;s:State name=&#034;up&#034; /&gt;
        &lt;s:State name=&#034;over&#034; /&gt;
        &lt;s:State name=&#034;down&#034; /&gt;
        &lt;s:State name=&#034;disabled&#034; /&gt;
    &lt;/s:states&gt;
    
    &lt;!-- dropshadow for the down state only --&gt;
    &lt;s:Rect radiusX=&#034;4&#034; radiusY=&#034;4&#034; top=&#034;0&#034; right=&#034;0&#034; bottom=&#034;0&#034; 
        left=&#034;0&#034; includeIn=&#034;down&#034;&gt;
        &lt;s:fill&gt;
           &lt;s:SolidColor color=&#034;0&#034;/&gt;
        &lt;/s:fill&gt;
        &lt;s:filters&gt;
           &lt;s:DropShadowFilter knockout=&#034;true&#034; blurX=&#034;5&#034; blurY=&#034;5&#034; 
           alpha=&#034;0.32&#034; distance=&#034;2&#034; /&gt;   
        &lt;/s:filters&gt;
    &lt;/s:Rect&gt;
    
    &lt;!-- border and fill --&gt;
    &lt;s:Rect id=&#034;rect&#034; radiusX=&#034;4&#034; radiusY=&#034;4&#034; top=&#034;0&#034; right=&#034;0&#034; 
        bottom=&#034;0&#034; left=&#034;0&#034;&gt;
        &lt;s:fill&gt;
           &lt;s:SolidColor color=&#034;0x77CC22&#034; color.over=&#034;0x92D64E&#034; 
           color.down=&#034;0x67A41D&#034;/&gt;
        &lt;/s:fill&gt;
        &lt;s:stroke&gt;
           &lt;s:SolidColorStroke color=&#034;0x131313&#034; weight=&#034;2&#034;/&gt;
        &lt;/s:stroke&gt;
    &lt;/s:Rect&gt;
    
    &lt;!-- highlight on top --&gt;
    &lt;s:Rect radiusX=&#034;4&#034; radiusY=&#034;4&#034; top=&#034;2&#034; right=&#034;2&#034; left=&#034;2&#034; height=&#034;50%&#034;&gt;
        &lt;s:fill&gt;
           &lt;s:LinearGradient rotation=&#034;90&#034;&gt;
               &lt;s:GradientEntry color=&#034;0xFFFFFF&#034; alpha=&#034;.5&#034;/&gt;
               &lt;s:GradientEntry color=&#034;0xFFFFFF&#034; alpha=&#034;.1&#034;/&gt;
           &lt;/s:LinearGradient&gt;
        &lt;/s:fill&gt;
    &lt;/s:Rect&gt;
    
    &lt;!-- text --&gt;
    &lt;s:Label id=&#034;labelDisplay&#034; color=&#034;0x131313&#034; textAlign=&#034;center&#034;
            verticalAlign=&#034;middle&#034;
            horizontalCenter=&#034;0&#034; verticalCenter=&#034;1&#034;
            left=&#034;12&#034; right=&#034;12&#034; top=&#034;6&#034; bottom=&#034;6&#034;
    /&gt;
    
    &lt;!-- transitions --&gt;
    &lt;s:transitions&gt;
        &lt;s:Transition&gt;
          &lt;s:CrossFade target=&#034;{rect}&#034; /&gt;
        &lt;/s:Transition&gt;
    &lt;/s:transitions&gt;
&lt;/s:Skin&gt;</code>
    </div>
</div>
<a name="articlecontentAdobe_text_12" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p><code>Label</code> no longer binds to the host              component.  Instead, I gave it an id of <code>labelDisplay</code>, which is              a part that Button is looking for.  The Button component takes care of              hooking up the data for you and pushes its <code>label</code> property into the <code>labelDisplay</code>. </p>
            <p>In addition to assigning a label element skin part, I've              also added a simple <code>CrossFade</code> transition in the skin.  The              skin file is where all the visual aspects of a component are defined, including              transitions.  In this case, any time the button changes states, you'll get              a nice fade transition between the states.</p>
            <h3>Skinning a slider</h3>
            <p>Skin parts are not just for pushing data from the component              into the skin, the component can also use them to hook up behaviors.  To              see this more clearly, consider the slider control.  The two main parts              for a slider are the track and the thumb.  In this case, the component              isn't pushing any data into the skin parts to be displayed, but it's adding              event listeners to these parts and performing some layout of the thumb based on              the <code>value</code> property of the component.  For instance, when the track is clicked, the              component updates its <code>value</code> property and positions the thumb              appropriately.  In addition, there's a dynamic skin part, dataTip, which              is used when dragging the thumb to display popup information. The example shown              in Figure 6 is a simple, modified slider.</p>
</div>
				</div>
<a name="articlecontentAdobe_image_4" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
	<img title="The modified slider (left) and original slider (right)." alt="The modified slider (left) and original slider (right)." class="cq-dd-image  LayoutImage LayoutRow " src="/content/dotcom/en/devnet/flex/articles/flex4_skinning/_jcr_content/articlecontentAdobe/image_4.adimg.mw.233.jpg/1279877595238.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
        Figure 6. The modified slider (left) and original slider (right).</div>
</div>
<a name="articlecontentAdobe_text_13" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>To build this, your skin file must declare the three skin parts: thumb, track, and dataTip.</p>
<p><b>MySliderSkin.mxml</b></p>
</div>
				</div>
<a name="articlecontentAdobe_codeblock_6" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
        <code class="CodeBlock">&lt;?xml version=&#034;1.0&#034; encoding=&#034;utf-8&#034;?&gt;
&lt;s:Skin xmlns:fx=&#034;http://ns.adobe.com/mxml/2009&#034; 
      xmlns:s=&#034;library://ns.adobe.com/flex/spark&#034;
      minWidth=&#034;11&#034; minHeight=&#034;100&#034; alpha.disabled=&#034;0.5&#034;&gt;
     &lt;fx:Metadata&gt;
       [HostComponent(&#034;spark.components.VSlider&#034;)]
    &lt;/fx:Metadata&gt; 
    &lt;s:states&gt;
        &lt;s:State name=&#034;normal&#034; /&gt;
        &lt;s:State name=&#034;disabled&#034; /&gt;
    &lt;/s:states&gt;
    
    &lt;fx:Declarations&gt;
        &lt;fx:Component id=&#034;dataTip&#034;&gt;
           &lt;s:DataRenderer minHeight=&#034;24&#034; minWidth=&#034;40&#034; x=&#034;20&#034;&gt; 
               &lt;s:Rect top=&#034;0&#034; left=&#034;0&#034; right=&#034;0&#034; bottom=&#034;0&#034;&gt;
                   &lt;s:fill&gt;
                       &lt;s:SolidColor color=&#034;0xFFF46B&#034; alpha=&#034;.9&#034;/&gt;
                   &lt;/s:fill&gt;
                   &lt;s:filters&gt;
                       &lt;s:DropShadowFilter angle=&#034;90&#034; color=&#034;0x999999&#034; distance=&#034;3&#034;/&gt;                   
                   &lt;/s:filters&gt;
               &lt;/s:Rect&gt;
                      
               &lt;s:Label id=&#034;labelField&#034; text=&#034;{data}&#034;
                        horizontalCenter=&#034;0&#034; verticalCenter=&#034;1&#034;
                        left=&#034;5&#034; right=&#034;5&#034; top=&#034;5&#034; bottom=&#034;5&#034;
                        textAlign=&#034;center&#034; verticalAlign=&#034;middle&#034; color=&#034;0x555555&#034; /&gt;
           &lt;/s:DataRenderer&gt;
        &lt;/fx:Component&gt;
    &lt;/fx:Declarations&gt;
    
    &lt;s:Button id=&#034;track&#034; left=&#034;5&#034; right=&#034;5&#034; top=&#034;0&#034; bottom=&#034;0&#034; skinClass=&#034;MyTrackSkin&#034; /&gt;
    &lt;s:Button id=&#034;thumb&#034; left=&#034;0&#034; right=&#034;0&#034; width=&#034;18&#034; height=&#034;8&#034; skinClass=&#034;MyThumbSkin&#034; /&gt;
 
&lt;/s:Skin&gt; </code>
    </div>
</div>
<a name="articlecontentAdobe_text_14" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>Once defined in the skin, the component is in charge of              hooking up these skin parts.  It adds event listeners on the thumb so you              can drag the thumb around the track.  It also positions the thumb based on              the value.  Take a look at the sample source code to see <code>MyTrackSkin</code> and <code>MyThumbSkin</code>.               There you'll see more examples of FXG in action.  Notice that the thumb              skin as defined has a completely different shape than the default Spark skin              thumb. </p>
            <p>The dataTip skin part is dynamic—it's a part that the              component is in charge of creating and laying out.  In this case, as you              drag around the thumb, the dataTip pops up and is positioned to the right of              the thumb.  Because of the skinning contract, the skin can just define the              skin parts, and the visual aspects of them, without having to worry about              attaching any behavior to these parts.  All of that hook-up logic is              handled in the component.</p>
            <p class="note">Note: Many of the built-in components in Flex 4 use skin              parts to not only attach behavior to the parts but also to push down data into              the skin parts.  The other way to get data in the skin is to pull them              through the <code>hostComponent</code> property.</p>
            <p>When creating a skin for a component, not all of the skin              parts are required.  For example, VSlider's dataTip skin part is not              required.  If it's not there, no data tip will show up.</p>
</div>
				</div>
<a name="articlecontentAdobe_numberedheader_2" style="visibility:hidden"></a><div class="parbase compbase numberedheader section"><h3 class="TextH3 LayoutCellSides LayoutRow">
        <a id="articlecontentAdobe_numberedheader_2"></a>
        Creating a skinnable component</h3>
</div>
<a name="articlecontentAdobe_text_15" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>The skinnable Spark components aren't doing anything special behind the scenes. They have data properties and advertise the skin parts and skin states they need through metadata. They also hook into a few key methods for managing the lifecycle of skins and skin parts. You can easily create a new skinnable component that does the same thing.</p>
<p>To demonstrate this, you can create a simple NoteCard component, which can be used to display notes on screen. In the example shown in Figure 7, the application has created multiple notes filled with random quotations.</p>
</div>
				</div>
<a name="articlecontentAdobe_image_5" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
	<img title="NoteCard component instances." alt="NoteCard component instances." class="cq-dd-image  LayoutImage LayoutRow " src="/content/dotcom/en/devnet/flex/articles/flex4_skinning/_jcr_content/articlecontentAdobe/image_5.adimg.mw.650.jpg/1279877616967.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
        Figure 7. NoteCard component instances.</div>
</div>
<a name="articlecontentAdobe_text_16" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>The main application just creates a NoteCard with a random quote and rotates it a little bit. The interesting part of the application is the NoteCard class, which extends the spark.components.supportClasses.SkinnableComponent class and hooks in to the skinning lifecycle methods.</p>
<p><b>NoteCard.as:</b></p>
</div>
				</div>
<a name="articlecontentAdobe_codeblock_7" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
        <code class="CodeBlock">package
{
 
[SkinState(&#034;normal&#034;)]
[SkinState(&#034;disabled&#034;)]
public class NoteCard extends SkinnableComponent
{
    public function NoteCard()
    {
        super();
    }
    
    [SkinPart(required=&#034;true&#034;)]
    public var labelDisplay:TextBase;
    
    [SkinPart(required=&#034;false&#034;)]
    public var closeButton:Button;
    
    private var _text:String;
 
    public function get text():String
    {
        return _text;
    }
 
    public function set text(value:String):void
    {
        if (_text == value)
           return;
        _text = value;
    }
 
    ...
}
}</code>
    </div>
</div>
<a name="articlecontentAdobe_text_17" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>This component declares data properties, skin states, and skin parts. For the data, NoteCard has a public <code>text</code> property. Also, NoteCard has two skin states, <code>normal</code> and <code>disabled</code>, declared with the <code>SkinStates</code> metadata on top of the class. This tells the skin that it needs to implement these two states.</p>
<p>NoteCard also has two skin parts, as declared via the <code>SkinPart</code> metadata. The <code>SkinPart</code> metadata goes right above the name of the skin part. In this case, labelDisplay is a required <code>TextBase</code> skin part, and closeButton is an optional <code>Button</code> skin part.</p>
<p>Because the skin is loaded up at runtime, when the component first starts up, you aren't guaranteed to have a skin at all. You also aren't guaranteed to have all of the skin parts, especially if they are optional. It is the framework's job to hook up the part declared in the skin to the component property definitions and to inform the component that they are ready through the skinning lifecycle methods.</p>
<h3>Implementing skin states on the component</h3>
<p>To hook up the skin states, you override <code>getCurrentSkinState()</code> to return the state your skin should currently be in. In this case, it'll either return <code>&quot;normal&quot;</code> or <code>&quot;disabled&quot;</code>. When some event causes your skin state to invalidate, the component should call <code>invalidateSkinState()</code>.</p>
<p><b>NoteCard.as</b></p>
</div>
				</div>
<a name="articlecontentAdobe_codeblock_8" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
        <code class="CodeBlock">package
{
[SkinState(&#034;normal&#034;)]
[SkinState(&#034;disabled&#034;)]
public class NoteCard extends SkinnableComponent
{
    ...   
    override public function set enabled(value:Boolean) : void
    {
        if (enabled != value)
           invalidateSkinState();
        super.enabled = value;
    }
    
    override protected function getCurrentSkinState() : String
    {
        if (!enabled)
           return &#034;disabled&#034;;
        return &#034;normal&#034;
    }
    
    ...
}
}</code>
    </div>
</div>
<a name="articlecontentAdobe_text_18" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>When the <code>enabled</code> property gets set, the setter calls <code>invalidateSkinState()</code>. This informs the skin that its state needs to change, and <code>getCurrentSkinState()</code> will be called.</p>
<h3>Hooking up skin parts to the component</h3>
<p>To hook up the skin parts, there are two primary methods you should override, <code>partAdded()</code> and <code>partRemoved()</code>. These methods tell you when a particular skin part is added and when one is removed. Parts can get added or removed when a skin is loaded up, a skin is swapped at runtime, a part comes online because it was deferred and may only exist in certain states, or a dynamic part was newly created. When the part gets added, you should take the opportunity to push any data you want down into it and hook up any event listeners. When the part gets removed, you should do the opposite.</p>
<p><b>NoteCard.as</b></p>
</div>
				</div>
<a name="articlecontentAdobe_codeblock_9" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
        <code class="CodeBlock">package
{
public class NoteCard extends SkinnableComponent
{
    [SkinPart(required=&#034;true&#034;)]
    public var labelDisplay:TextBase;
    
    [SkinPart(required=&#034;false&#034;)]
    public var closeButton:Button;
    
    public function set text(value:String):void
    {
        if (_text == value)
           return;
        _text = value;
        
        if (labelDisplay)
           labelDisplay.text = value;
    }
 
    override protected function partAdded(partName:String, instance:Object) : void
    {
       super.partAdded(partName, instance);
       
       if (instance == labelDisplay)
           labelDisplay.text = _text;
       if (instance == closeButton)
           closeButton.addEventListener(MouseEvent.CLICK, closeButton_clickHandler);
    }
    
    override protected function partRemoved(partName:String, instance:Object) : void
    {
       super.partRemoved(partName, instance);
        
        if (instance == closeButton)
           closeButton.removeEventListener(MouseEvent.CLICK, closeButton_clickHandler);
    }
    
    protected function closeButton_clickHandler(event:MouseEvent) : void
    {
       event.stopPropagation();
       
       IVisualElementContainer(parent).removeElement(this);
    }
 }
}</code>
    </div>
</div>
<a name="articlecontentAdobe_text_19" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p>In <code>partAdded()</code>, when the labelDisplay is hooked up, I push the <code>text</code> property into that skin part. Also, in the <code>text</code> setter, I check to see if the labelDisplay is present and hooked up—and if it is, I make sure to keep the <code>text</code> property of the labelDisplay synchronized with the component. In <code>partAdded()</code>, I add a click event listener to the closeButton skin part. In <code>partRemoved()</code>, I make sure to remove that same click event listener.</p>
<p>As a <code>SkinnableComponent</code>, that's all you need to do to participate in this powerful skinning mechanism. When someone creates a skin for this component, they need to implement the skin states and hook up to the skin parts in order to get the desired behavior. The chalkboard skin shown in Figure 6 can be found in the sample source files, and even though this is a simple component definition, you can completely change the look and feel of it by using a different skin. That's the true power of skinning.</p>
<p><b>Note:</b> When creating skinnable components, you might have to decide whether certain behavior belongs in the component or in the skin. There's no clear, hard line you must follow. Do whatever makes your job easier. As a general guideline, however, everything defining the look and feel of the component should be in the skin file, declared in MXML. On the other hand, if multiple skins want that particular behavior, then it might be a good idea to put that behavior in the skinnable component. For example, the positioning of the thumb in a slider is done in VSlider and HSlider, not in the skin.</p>
<h3>Where to go from here</h3>
<p>Skinning in Flex 4 has undergone a major revision. There's a clear separation between the component and its skin. The component contains the data, behavior, and core logic for the component, while the skin defines the look and feel of the component. The component is written in ActionScript and the skin in MXML, which is possible thanks to FXG and the new states syntax. These two pieces, the component and the skin, communicate with each other through the skinning contract. Because they are separate files, new skins can easily be swapped in to completely change the look and feel of the component.</p>
<p>For more information about skinning in Flex 4, check out the <a target="_blank" href="http://opensource.adobe.com/wiki/display/flexsdk/Gumbo+Skinning">skinning architecture specification</a> as well as the <a target="_blank" href="http://opensource.adobe.com/wiki/display/flexsdk/Gumbo+Component+Architecture">Gumbo Component Architecture whitepaper</a>.</p>
</div>
				</div>
<a name="articlecontentAdobe_reference" style="visibility:hidden"></a><div class="parbase section reference"><div style="display:inline;" class="cq-dd-paragraph"><div class="text parbase"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
						<p><a rel="license" href="http://creativecommons.org/licenses/by-nc/3.0/"><img src="http://i.creativecommons.org/l/by-nc/3.0/88x31.png"></a><br>
This work is licensed under a <a href="http://creativecommons.org/licenses/by-nc/3.0/" target="_blank" rel="license">Creative Commons Attribution-Noncommercial 3.0 Unported License</a>.</p>
</div>
				</div>
</div>
</div>
</div></div>
<div class="LayoutRow">
                                <div class="articlePaging paging"></div>
</div>
                        </div>
            </div>
            <div class="ArticleWideGrid-5-6 ArticleWideRight">
                <div class="LayoutBreakAfter RuleH ArticleWideRuleHide TextSmall LayoutBreak">
                    <div class="ArticleGrid-2-3 LayoutSlimGrid-1-2 ArticleWideGridColReset">
                            <div class="morelikethis"><div class="LayoutCellSides">
                                    <h2 class="TextH5 LayoutRow">More Like This</h2>
                                    
                                    <ul class="LayoutRow">
                                        <li class="LayoutSmallRowBottom">
                                                <a href="/devnet/flex/articles/mobile-skinning-part1.html" title="Flex mobile skins – Part 1: Optimized skinning basics">Flex mobile skins – Part 1: Optimized skinning basics</a></li>
                                            <li class="LayoutSmallRowBottom">
                                                <a href="/devnet/flex/articles/migrating-dashboard-part3.html" title="Migrating Flex 3 applications to Flex 4 – Part 3: Introducing Spark components and simple skins">Migrating Flex 3 applications to Flex 4 – Part 3: Introducing Spark components and simple skins</a></li>
                                            <li class="LayoutSmallRowBottom">
                                                <a href="/devnet/flex/articles/flex3-flex45-flashbuilder45.html" title="A Flex 3 developer's introduction to Flex 4.5 and Flash Builder 4.5">A Flex 3 developer's introduction to Flex 4.5 and Flash Builder 4.5</a></li>
                                            <li class="LayoutSmallRowBottom">
                                                <a href="/devnet/flex/articles/migrating-dashboard-part4.html" title="Migrating Flex 3 applications to Flex 4 – Part 4: Using Spark Panel, List, and VGroup components and adding custom skins and states ">Migrating Flex 3 applications to Flex 4 – Part 4: Using Spark Panel, List, and VGroup components and adding custom skins and states </a></li>
                                            <li class="LayoutSmallRowBottom">
                                                <a href="/devnet/flex/articles/migrating-flex-apps-part4.html" title="Migrating Flex 3 applications to Flex 4.5 – Part 4: Using Spark Panel, List, DataGrid, and VGroup components and adding custom skins and states">Migrating Flex 3 applications to Flex 4.5 – Part 4: Using Spark Panel, List, DataGrid, and VGroup components and adding custom skins and states</a></li>
                                            <li class="LayoutSmallRowBottom">
                                                <a href="/devnet/flex/articles/migrating-flex-apps-part3.html" title="Migrating Flex 3 applications to Flex 4.5 – Part 3: Introducing Spark components and simple skins">Migrating Flex 3 applications to Flex 4.5 – Part 3: Introducing Spark components and simple skins</a></li>
                                            <li class="LayoutSmallRowBottom">
                                                <a href="/devnet/flex/articles/flex-mobile-development-tips-tricks-pt4.html" title="Flex mobile development tips and tricks—Part 4: Creating an alert popup and other skinnable popups ">Flex mobile development tips and tricks—Part 4: Creating an alert popup and other skinnable popups </a></li>
                                            <li class="LayoutSmallRowBottom">
                                                <a href="/devnet/flex/articles/migrating-flex-apps-part2.html" title="Migrating Flex 3 applications to Flex 4.5 – Part 2: Beginning migration of the Dashboard application to Flex 4.5">Migrating Flex 3 applications to Flex 4.5 – Part 2: Beginning migration of the Dashboard application to Flex 4.5</a></li>
                                            <li class="LayoutSmallRowBottom">
                                                <a href="/devnet/flex/articles/mobile-skinning-part3.html" title="Flex mobile skins – Part 3: Multiplatform development">Flex mobile skins – Part 3: Multiplatform development</a></li>
                                            <li class="LayoutSmallRowBottom">
                                                <a href="/devnet/flex/articles/migrating-dashboard-part2.html" title="Migrating Flex 3 applications to Flex 4 – Part 2: Beginning migration of the Dashboard application to Flex 4">Migrating Flex 3 applications to Flex 4 – Part 2: Beginning migration of the Dashboard application to Flex 4</a></li>
                                            </ul>
                                </div>
                            </div>
</div>
                    <div class="LayoutGrid-1-4 LayoutSlimGrid-1-2 LayoutBreakAfter">
                        <div class="LayoutRow">
                            <div class="parbase compbase inheritedpromo"></div>
</div>
                    </div>
                </div>
                <div class="LayoutBreakAfter TextSmall">
                    <div class="ArticleGrid-2 LayoutSlimGrid-1-2 ArticleWideGridColReset">
                        <div class="parsys inheritedresources inheritedResources"><div class="parsys"><div id="inheritedResources">
<div class="parbase xdheading compbase section"><div pathToMoreText="" class="LayoutRow LayoutBreakAfter TextH5" linkboxcolor="RouterMore">
	<table class="LayoutMaxH">
        <tbody>
            <tr>
                <td class="PanelFillDark">
					<h2 class="TextH5 LayoutCellSides LayoutSmallCellVSides">
                        		Tutorials &amp; Samples</h2>
					    </td>
                </tr>
        </tbody>
    </table>
</div>
</div>
<div class="whatsnew section"><div>
	<div class="LayoutCell">
            <h3 class="HeadingSmaller">
           		Tutorials</h3>
            <ul>
                <li>
                               	<a href="/devnet/flex/articles/flex-mobile-performance-checklist.html" title="Flex mobile performance checklist">Flex mobile performance checklist</a></li>
							<li>
                               	<a href="/devnet/flex/articles/flex-maven-flexmojos-pt3.html" title="Flex and Maven with Flexmojos – Part 3: Journeyman">Flex and Maven with Flexmojos – Part 3: Journeyman</a></li>
							<li>
                               	<a href="/devnet/flex/articles/migrating-flex-apps-part4.html" title="Migrating Flex 3 applications to Flex 4.5 – Part 4">Migrating Flex 3 applications to Flex 4.5 – Part 4</a></li>
							</ul>
            </div>
        </div>
</div>
<div class="whatsnew section"><div>
	<div class="LayoutCell">
            <h3 class="HeadingSmaller">
           		Samples</h3>
            <ul>
                <li>
                               	<a href="/devnet/flex/articles/twitter-trends.html" title="Twitter Trends">Twitter Trends</a></li>
							<li>
                               	<a href="/devnet/flex/samples.html" title="Flex 4.5 reference applications">Flex 4.5 reference applications</a></li>
							<li>
                               	<a href="http://coenraets.org/blog/2011/04/flex-based-ipad-trader-app-now-on-android-market/" title="Mobile Trader Flex app on Android Market">Mobile Trader Flex app on Android Market</a></li>
							</ul>
            </div>
        </div>
</div>
</div></div>
</div>
</div>
                    <div class="ArticleGrid-3 LayoutSlimGrid-1-2 ArticleWideGridColReset">
                        <div class="parsys inheritedresources inheritedResources2"></div>
</div>
                    <div class="ArticleGrid-4 LayoutSlimGrid-1-2 ArticleWideGridColReset">
                        <div class="parsys inheritedResources3 inheritedresources"></div>
</div>
                </div>
            </div>
            <!-- Main Content Comments -->

            <div class="LayoutRow LayoutGridBreak LayoutBreakAfter">
                <div class="parbase compbase jivecomments jiveComments"></div>
</div>

        </div>

    </div>
</div>
<div class="PrintLayoutHide">
        <!--googleoff: all--><script>
	//<![CDATA[
	var hideEvidon = false;

    $(document).ready(function() {
		adobe.fn.initGlobalFooter();
		adobe.fn.evidon('_bapw-link');
		
		adobe.fn.initGeorouting();
	});
    changeRegion = adobe.fn.changeRegionFooter;
    //]]>
</script>

<!--googleoff: index-->
<!-- $Id: //depot/projects/dylan/releases/rc_13_11/ubi/footer/en_us/globalfooter_ssi.html#1 $ -->
<div id="SiteFooter" class="SiteFooter Text TextSmall TextInvert Link LayoutBreak">
	<span id="Georouting"></span>
    <div class="LayoutBreakAfter">
        <div class="LayoutGrid-1 LayoutSlimGrid-1 LinkInvert">
        	<div class="LayoutCellSides LayoutCellTop">
                <h4><a href="/products/catalog.html?promoid=JOPBT">Products</a></h4>
                <ul class="SiteFooterLinkList">
                    <li><a class="icon Icon SiteFooterMenuItemIconProducts SiteFooterMenuItemIconCloud" href="/products/creativecloud.html?promoid=JQPER">Adobe Creative Cloud</a></li>
                    <li><a class="icon Icon SiteFooterMenuItemIconProducts SiteFooterMenuItemIconCS" href="/products/cs6.html?promoid=KFHNH">Creative Suite 6</a></li>
                    <li><a class="icon Icon SiteFooterMenuItemIconProducts SiteFooterMenuItemIconOMS" href="/solutions/digital-marketing.html?promoid=JOPBY">Adobe Marketing Cloud</a></li>
                    <li><a class="icon Icon SiteFooterMenuItemIconProducts SiteFooterMenuItemIconAcrobat" href="/products/acrobat.html?promoid=JOPBV">Acrobat</a></li>
                    <li><a class="icon Icon SiteFooterMenuItemIconProducts SiteFooterMenuItemIconPS" href="/products/photoshop.html?promoid=JOPCB">Photoshop</a></li>
                    <li><a class="icon Icon SiteFooterMenuItemIconProducts SiteFooterMenuItemIconDPS" href="/products/digital-publishing-suite-family.html?promoid=JOPBZ">Digital Publishing Suite</a></li>
                    <li><a class="icon Icon SiteFooterMenuItemIconProducts SiteFooterMenuItemIconElements" href="/products/elements-family.html?promoid=JOPBX">Elements family</a></li>
                    <li><a class="icon Icon SiteFooterMenuItemIconProducts SiteFooterMenuItemIconSC" href="/products/sitecatalyst.html?promoid=KFGCH">SiteCatalyst</a></li>
                    <li><a class="icon Icon SiteFooterMenuItemIconProducts" href="/education.html?marketSegment=EDU&promoid=JUTMH">For education</a></li>
                </ul>
            </div>
        </div>
        <div class="LayoutGrid-2 LayoutSlimGrid-2 LinkInvert">
        	<div class="LayoutCellSides LayoutCellTop">
                <h4><a href="/downloads/?promoid=JOPDB">Download</a></h4>
                <ul class="SiteFooterLinkList SiteFooterLinkListBottom">
                    <li><a href="/downloads/?promoid=KEWBH">Product trials</a></li>
                    <li><a href="/go/gffooter_adobe_reader">Adobe Reader</a></li>
                    <li><a href="http://get2.adobe.com/flashplayer/?promoid=KFHNI">Adobe Flash Player</a></li>
                    <li><a href="/go/gffooter_adobe_air">Adobe AIR</a></li>
                </ul>
            </div>
        </div>
        <div class="LayoutGrid-3 LayoutSlimGrid-1 LinkInvert">
        	<div class="LayoutCellSides LayoutCellTop">
                <h4><a href="/go/gffooter_help">Support &amp; Learning</a></h4>
                <ul class="SiteFooterLinkList">
                    <li><a href="http://helpx.adobe.com/support.html?promoid=KFKQG">Product help</a></li>
                    <li><a href="http://forums.adobe.com/index.jspa?promoid=JOPCT" target="_blank">Forums</a></li>
                </ul>
            </div>
        </div>
        <div class="LayoutGrid-4 LayoutSlimGrid-2 LinkInvert">
        	<div class="LayoutCellSides LayoutCellTop">
                <h4><a href="/buy.html?promoid=JOPCV">Buy</a></h4>
                <ul class="SiteFooterLinkList">
                    <li><a href="/go/gffooter_homeuse">For personal and professional use</a></li>
                    <li><a href="/go/gffooter_students_store">For students, educators, and staff</a></li>
                    <li><a href="/products/small-business-pricing/software-catalog._sl_id-contentfilter_sl_catalog_sl_software_sl_creativecloudmembership.html?marketSegment=COM&promoid=JOPCY">For small and medium businesses</a></li>
                    <li><a href="/go/gffooter_licensingprograms">Volume Licensing</a></li>
                    <li><a href="/go/gffooter_special_offers">Special offers</a></li>
                </ul>
            </div>
        </div>
        <div class="LayoutGrid-5 LayoutSlimGrid-1-2 LinkInvert">
        	<div class="LayoutCellSides LayoutCellTop">
                <h4><a href="/company.html?promoid=JOPDG">Company</a></h4>
                <ul class="SiteFooterLinkList">
                    <li><a href="/go/gffooter_news_room">News room</a></li>
                    <li><a href="/go/gffooter_partner_programs">Partner programs</a></li>
                    <li><a href="/go/gffooter_corporate_social_responsibility">Corporate responsibility</a></li>
                    <li><a href="/go/gffooter_career_opportunities">Career opportunities</a></li>
                    <li><a href="/go/gffooter_investor_relation">Investor Relations</a></li>
                    <li><a href="/go/gffooter_events">Events</a></li>
                    <li><a href="/go/gffooter_legal">Legal</a></li>
                    <li><a href="/go/gffooter_security">Security</a></li>
                    <li><a href="/company/contact.html?promoid=JOPDO">Contact Adobe</a></li>
                </ul>
            </div>
        </div>
        
		<div class="LayoutGridBreak">
        	<div class="LayoutCellSides LayoutCellBottom">
                <div class="SiteFooterRegionSelector TextInvert LinkInvert LinkStrong">
                    <a href="/go/gffooter_choose_region" id="sfRegion" class="SiteFooterMenuItemIcon SiteFooterMenuItemIconRegionBlue">Choose your region</a>
                    <span id="sfRegionSet" class="SiteFooterMenuItemIcon SiteFooterMenuItemIconRegionBlack" style="display: none;">United States <a href="/go/gffooter_choose_region" id="sfRegionChange">(Change)</a></span>
                </div>
                <div class="SiteFooterRegionPanel SiteFooterRegionPanelEvidon" id="RegionPanel" style="display: none;">
                    <div class="SiteFooterRegionPanelHeader">
                        <span class="SiteFooterMenuItemIcon SiteFooterMenuItemIconRegionBlack">Choose your region</span>
                        <a id="sfRegionClose" class="SiteFooterRegionPanelHeaderClose">Close</a>
                    </div>
                    <div class="Column">
                        <div class="Column-1">
                            <p class="SiteFooterRegionPanelRegionHeader">North America</p>
                        </div>
                        <div class="Column-2-3">
                            <p class="SiteFooterRegionPanelRegionHeader">Europe, Middle East and Africa</p>
                        </div>
                        <div class="Column-4">
                            <p class="SiteFooterRegionPanelRegionHeader">Asia Pacific</p>
                        </div>
                        <div class="Column-1">
                            <ul>
                                <li lang="en"><a onClick="changeRegion('ca');">Canada - English</a></li>
                                <li lang="fr"><a onClick="changeRegion('ca_fr');">Canada - Fran&ccedil;ais</a></li>
                                <li lang="es"><a onClick="changeRegion('la');">Latinoam&eacute;rica</a></li>
                                <li lang="es"><a onClick="changeRegion('mx');">M&eacute;xico</a></li>
                                <li lang="en"><a onClick="changeRegion('us');">United States</a></li>
                            </ul>
            
                            <p class="SiteFooterRegionPanelRegionHeader">South America</p>
                            <ul>
                                <li lang="pt"><a onClick="changeRegion('br');">Brasil</a></li>
                            </ul>
                        </div>
                        <div class="Column-2">
                            <ul>
                                <li lang="en"><a onClick="changeRegion('africa');">Africa - English</a></li>
                                <li lang="de"><a onClick="changeRegion('at');">&Ouml;sterreich - Deutsch</a></li>
                                <li lang="en"><a onClick="changeRegion('be_en');">Belgium - English</a></li>
                                <li lang="fr"><a onClick="changeRegion('be_fr');">Belgique - Fran&ccedil;ais</a></li>
                                <li lang="nl"><a onClick="changeRegion('be_nl');">Belgi&euml; - Nederlands</a></li>
                                <li lang="bg"><a onClick="changeRegion('bg');">България</a></li>
                                <li lang="hr"><a onClick="changeRegion('hr');">Hrvatska</a></li>
                                <li lang="en"><a onClick="changeRegion('eeurope');">Cyprus - English</a></li>                                
                                <li lang="cs"><a onClick="changeRegion('cz');">Česk&aacute; republika</a></li>
                                <li lang="da"><a onClick="changeRegion('dk');">Danmark</a></li>
                                <li lang="en"><a onClick="changeRegion('eeurope');">Eastern Europe - English</a></li>
                                <li lang="et"><a onClick="changeRegion('ee');">Eesti</a></li>
                                <li lang="fi"><a onClick="changeRegion('fi');">Suomi</a></li>
                                <li lang="fr"><a onClick="changeRegion('fr');">France</a></li>
                                <li lang="de"><a onClick="changeRegion('de');">Deutschland</a></li>
                                <li lang="en"><a onClick="changeRegion('eeurope');">Greece - English</a></li>
                                <li lang="hu"><a onClick="changeRegion('hu');">Magyarorsz&aacute;g</a></li>
                                <li lang="en"><a onClick="changeRegion('ie');">Ireland</a></li>
                                <li lang="en"><a onClick="changeRegion('il_en');">Israel - English</a></li>
                                <li lang="he"><a onClick="changeRegion('il_he');">&#1497;&#1513;&#1512;&#1488;&#1500; - &#1506;&#1489;&#1512;&#1497;&#1514;</a></li>
                                <li lang="it"><a onClick="changeRegion('it');">Italia</a></li>
                                <li lang="lv"><a onClick="changeRegion('lv');">Latvija</a></li>
                                <li lang="lt"><a onClick="changeRegion('lt');">Lietuva</a></li>
                                <li lang="de"><a onClick="changeRegion('lu_de');">Luxembourg - Deutsch</a></li>
                                <li lang="en"><a onClick="changeRegion('lu_en');">Luxembourg - English</a></li>
                                <li lang="fr"><a onClick="changeRegion('lu_fr');">Luxembourg - Fran&ccedil;ais</a></li>
                            </ul>
                        </div>
                        <div class="Column-3">
                            <ul>
                                <li lang="en"><a onClick="changeRegion('eeurope');">Malta - English</a></li>
								<li lang="ar"><a onClick="changeRegion('mena_ar');">&#1575;&#1604;&#1588;&#1585;&#1602; &#1575;&#1604;&#1571;&#1608;&#1587;&#1591; &#1608;&#1588;&#1605;&#1575;&#1604; &#1571;&#1601;&#1585;&#1610;&#1602;&#1610;&#1575; - &#1575;&#1604;&#1604;&#1594;&#1577; &#1575;&#1604;&#1593;&#1585;&#1576;&#1610;&#1577;</a></li>                                <li lang="en"><a onClick="changeRegion('mena_en');">Middle East and North Africa - English</a></li>
                                <li lang="fr"><a onClick="changeRegion('mena_fr');">Moyen-Orient et Afrique du Nord - Fran&ccedil;ais</a></li>
                                <li lang="nl"><a onClick="changeRegion('nl');">Nederland</a></li>
                                <li lang="no"><a onClick="changeRegion('no');">Norge</a></li>
                                <li lang="pl"><a onClick="changeRegion('pl');">Polska</a></li>
                                <li lang="pt"><a onClick="changeRegion('pt');">Portugal</a></li>
                                <li lang="ro"><a onClick="changeRegion('ro');">Rom&acirc;nia</a></li>
                                <li lang="ru"><a onClick="changeRegion('ru');">Россия</a></li>
                                <li lang="sr"><a onClick="changeRegion('rs');">Srbija</a></li>
                                <li lang="sk"><a onClick="changeRegion('sk');">Slovensko</a></li>
                                <li lang="sl"><a onClick="changeRegion('si');">Slovenija</a></li>
                                <li lang="es"><a onClick="changeRegion('es');">Espa&ntilde;a</a></li>
                                <li lang="sv"><a onClick="changeRegion('se');">Sverige</a></li>
                                <li lang="de"><a onClick="changeRegion('ch_de');">Schweiz - Deutsch</a></li>
                                <li lang="fr"><a onClick="changeRegion('ch_fr');">Suisse - Fran&ccedil;ais</a></li>
                                <li lang="it"><a onClick="changeRegion('ch_it');">Svizzera - Italiano</a></li>
                                <li lang="tr"><a onClick="changeRegion('tr');">T&uuml;rkiye</a></li>
                                <li lang="uk"><a onClick="changeRegion('ua');">Україна</a></li>
                                <li lang="en"><a onClick="changeRegion('uk');">United Kingdom</a></li>
                            </ul>
                        </div>
                        <div class="Column-4">
                            <ul>
                                <li lang="en"><a onClick="changeRegion('au');">Australia</a></li>
                                <li lang="zh"><a onClick="changeRegion('cn');">中国</a></li>
                                <li lang="zh"><a onClick="changeRegion('hk_zh');">中國香港特別行政區</a></li>
                                <li lang="en"><a onClick="changeRegion('hk_en');">Hong Kong S.A.R. of China</a></li>
                                <li lang="en"><a onClick="changeRegion('in');">India - English</a></li>
                                <li lang="ja"><a onClick="changeRegion('jp');">日本</a></li>
                                <li lang="ko"><a onClick="changeRegion('kr');">한국</a></li>
                                <li lang="en"><a onClick="changeRegion('nz');">New Zealand</a></li>
                                <li lang="zh"><a onClick="changeRegion('tw');">台灣</a></li>
                            </ul>
            
                            <p class="SiteFooterRegionPanelRegionHeader">Southeast Asia</p>
                            <ul>
                                <li lang="en"><a onClick="changeRegion('sea');">Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>
        </div>

		<div class="LayoutGridBreak">
        	<div class="LayoutCellSides">
                <hr />
            </div>
        </div>
    
        <div class="LayoutGrid-1-5 LayoutSlimGrid-1-2 LinkInvert LinkStrong">
        	<div class="LayoutCellSides LayoutCellBottom LinkInvert">
                <p class="SiteFooterRow TextSmall">Copyright &copy; 2013 Adobe Systems Incorporated.  All rights reserved.</p>
                <p class="SiteFooterRow TextSmall"><a href="/go/gffooter_terms_of_use">Terms of Use</a> | <a href="/privacy.html">Privacy</a> | <a href="/privacy/cookies.html">Cookies</a></p>
                <p class="SiteFooterRow SiteFooterRowTop"><a href="#" id="_bapw-link" class="TextSmall icon Icon SiteFooterMenuItemIconEvidon" style="display:none;">Ad Choices</a></p>
            </div>
        </div>
    </div>
</div>
<!--googleon: index--><!--googleon: all--></div>
    <div class="parsys templatembox bottomofbodymbox"><div class="mboxDefault">
                    </div>
                <script>
                            mboxCreate('defaultmboxname');
                    </script>
                </div>
<div class="parsys doubleclickfloodlight"><!-- Fetch either EDU or COM snippet based on the Mode selection-->
</div>

    <!-- Invoking faas form engine tracking Script !! --->
    </div>
</body>
</html>
