blob: 373c3e0a8478891ba0137c368131799520a8f762 [file] [log] [blame]
<!--
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>Create skins – Flex Test Drive | Adobe Developer Connection</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="noodp" />
<meta name="keywords" content="RIA" />
<meta name="description" content="Learn to change the appearance of components by creating and using skins." /><meta name="creationDate" content="2011-09-16 @ 16:07:31" />
<meta name="lastModifiedDate" content="2011-09-16 @ 16:07:31" />
<meta name="viewport" content="width=device-width" />
<meta name="page" content="main" />
<meta name="shortTitle" content="Flex Test Drive: Change the appearance of your application"/>
<meta name="blurb" content="Learn to change the appearance of components by creating and using skins." />
<meta name="author" content="Adobe" />
<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/testdrive/articles/5_customize_app2.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 = "8";
</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};
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/testdrive/articles/5_customize_app2");
});
</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>
<span class="LayoutHItem LayoutSmallGutterRight">
<a href="/devnet/flex/testdrive.html">
Flex Test Drive</a>
</span>
<span class="LayoutSmallGutterRight LayoutHItem">/</span>
</div>
</div>
</div>
</div>
<div class="LayoutGrid-1-3 LayoutSlimGrid-1-2">
<h1 class="LayoutCellSides LayoutSmallRow TextH1">
Flex Test Drive: Change the appearance of your application</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/adobe_logo.html">Adobe</a></h2>
<div class="LayoutRow">
<img title="adobe_logo_bio" alt="Adobe logo" class="ImageShadow LayoutImage" src="devnet/authors/bio/a/adobe_logo_bio.jpg.adimg.mw.160.png"/></div>
</div>
</div>
<div class="LayoutCellSides LayoutRow">
<div class="parbase compbase articleTOC singlepagetoc"></div>
</div>
<div class="LayoutCellSides LayoutRow">
<div class="articleTools articletools"><div class="LayoutRow LayoutCellVSides">
<h2 class="TextH5 LayoutSmallRow">Modified</h2>
<p>27 June 2011</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_flash_builder_v_.tse.html" class="LayoutHItem LayoutHItem PanelFillMedium LayoutSmallGutterRight LayoutSmallRow LayoutSmallCellSides" title="Flash&nbsp;Builder">Flash&nbsp;Builder</a><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_ria.tse.html" class="LayoutHItem LayoutHItem PanelFillMedium LayoutSmallGutterRight LayoutSmallRow LayoutSmallCellSides" title="RIA">RIA</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="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 id="globalnav"></p>
<p><a href="#video">Video</a> | <a href="#code">Code</a> | <a href="#tutorial">Tutorial</a> | <a href="#links">Links</a></p>
<h2><a name="video"></a>Create skins</h2>
<h3>&nbsp;</h3>
</div>
</div>
<a name="articlecontentAdobe_neroliplayer" style="visibility:hidden"></a><div class="flash parbase compbase neroliplayer section"><div class="LayoutRow">
<script>
if(deepLinkMap != null) {
deepLinkMap['#articlecontentAdobe_neroliplayer_split_articlecontentAdobe_neroliplayer'] = 'articlecontentAdobe_neroliplayer_split_articlecontentAdobe_neroliplayer';
}
</script>
<a name="articlecontentAdobe_neroliplayer_split_articlecontentAdobe_neroliplayer"></a>
<div id="articlecontentAdobe_neroliplayer" class="LayoutImage">
<span style="width:650px;height:366px;" class="FlashAltCanvas">
<span class="FlashAltLayoutOverlay FlashAltLayoutBody FlashAltText">
<span class="FlashAltLayoutRow FlashAltTextLarge">
This content requires Flash</span>
<span class="FlashAltLayoutRow FlashAltRequires">
To view this content, JavaScript must be enabled, and you need the latest version of the Adobe Flash Player.</span>
<span class="FlashAltLayoutRow FlashAltButton">
<a href="/go/getflashplayer/" class="FlashAltButton">To view this content, JavaScript must be enabled, and you need the latest version of the Adobe Flash Player.</a></span>
</span>
</span>
</div>
<script>
//<![CDATA[
var attributes = {
'id':'articlecontentAdobe_neroliplayer','name':'articlecontentAdobe_neroliplayer','class':'LayoutImage'
};
var params = {play: "true",
loop: "true",
menu: "true",
scale: "noscale",
salign: "tl",
wmode: "opaque",
swliveconnect: "false",
devicefont: "false",
allowscriptaccess: "always",
seamlesstabbing: "true",
allowfullscreen: "true",
allownetworking: "all"
};
var flashvars = {
locale: "",expandFunction: "",account: "",debug: "false",live: "",configPath: "/content/dotcom/en/devnet/flex/testdrive/articles/5_customize_app2/_jcr_content/articlecontentAdobe/neroliplayer.config.__autoinvalidate.xml"
};
if (swfobject.getQueryParamValue( 'autoPlay').length) flashvars.autoPlay = swfobject.getQueryParamValue( 'autoPlay' );
if (swfobject.getQueryParamValue( 'allowFullScreen').length) flashvars.allowFullScreen = swfobject.getQueryParamValue( 'allowFullScreen' );
var hash = location.hash;
var chapterIdDeepLink = '';
if(hash != null && hash != '') {
var hashArray = hash.split("_split_");
if(hashArray != null && hashArray.length >= 2) {
if(hashArray[0] == '#articlecontentAdobe_neroliplayer') {
chapterIdDeepLink = hashArray[hashArray.length-1];
flashvars.chapterID = chapterIdDeepLink;
}
}
}
swfobject.embedSWF("/include/flash/neroli/neroli.swf",
"articlecontentAdobe_neroliplayer",
"650",
"366",
"10",
"/include/flash/expressInstall.swf",
flashvars, params, attributes);
//]]>
</script>
</div>
</div>
<a name="articlecontentAdobe_text_0" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p><a href="testdrive/testdrive_files.zip">Download the Test Drive solution files</a> (ZIP, 14 MB)<br>
<a href="testdrive/testdrive_assets.zip">Download the assets files for this tutorial</a> (ZIP, 2 KB)</p>
<h2><a name="code"></a>Code</h2>
<p><u>TestDrive.mxml</u></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">@namespace s &#034;library://ns.adobe.com/flex/spark&#034;;
(...)
s|TextInput.searchInput
{
skinClass: ClassReference(&#034;skins.SearchInputSkin&#034;);
}
s|Button.searchButton
{
skinClass: ClassReference(&#034;skins.SearchButtonSkin&#034;);
}</code>
</div>
</div>
<a name="articlecontentAdobe_text_1" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p><u>FlexWebTestDrive.mxml<br>
</u></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;s:Application ...&gt;
(...)
&lt;s:TextInput id=&#034;searchTxt&#034; prompt=&#034;Last Name&#034;
styleName=&#034;searchInput&#034; .../&gt;
&lt;s:Button id=&#034;searchBtn&#034; styleName=&#034;searchButton&#034; .../&gt;
&lt;/s:Application&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_text_11" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p><u>skins/SearchInputSkin.mxml</u></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:SparkSkin xmlns:fx=&#034;http://ns.adobe.com/mxml/2009&#034;
xmlns:s=&#034;library://ns.adobe.com/flex/spark&#034;
xmlns:fb=&#034;http://ns.adobe.com/flashbuilder/2009&#034;
alpha.disabledStates=&#034;0.5&#034; blendMode=&#034;normal&#034; minHeight=&#034;30&#034;&gt;
&lt;fx:Metadata&gt;
[HostComponent(&#034;spark.components.TextInput&#034;)]
&lt;/fx:Metadata&gt;
&lt;fx:Script&gt;
&lt;![CDATA[
private static const focusExclusions:Array = [&#034;textDisplay&#034;];
override public function get focusSkinExclusions():Array {
return focusExclusions;
};
]]&gt;
&lt;/fx:Script&gt;
&lt;s:states&gt;
&lt;s:State name=&#034;normal&#034;/&gt;
&lt;s:State name=&#034;disabled&#034; stateGroups=&#034;disabledStates&#034;/&gt;
&lt;s:State name=&#034;normalWithPrompt&#034;/&gt;
&lt;s:State name=&#034;disabledWithPrompt&#034; stateGroups=&#034;disabledStates&#034;/&gt;
&lt;/s:states&gt;
&lt;s:Rect id=&#034;border&#034; left=&#034;0&#034; right=&#034;0&#034; top=&#034;0&#034; bottom=&#034;0&#034;
radiusX=&#034;3&#034; radiusY=&#034;3&#034;&gt;
&lt;s:stroke&gt;
&lt;s:SolidColorStroke id=&#034;borderStroke&#034; weight=&#034;1&#034; /&gt;
&lt;/s:stroke&gt;
&lt;/s:Rect&gt;
&lt;s:Rect id=&#034;background&#034; left=&#034;1&#034; right=&#034;1&#034; top=&#034;1&#034; bottom=&#034;1&#034;
radiusX=&#034;3&#034; radiusY=&#034;3&#034;&gt;
&lt;s:fill&gt;
&lt;s:SolidColor id=&#034;bgFill&#034; color=&#034;0xFFFFFF&#034; /&gt;
&lt;/s:fill&gt;
&lt;/s:Rect&gt;
&lt;s:Rect id=&#034;shadow&#034; left=&#034;1&#034; top=&#034;1&#034; right=&#034;1&#034; height=&#034;1&#034;
radiusX=&#034;3&#034; radiusY=&#034;3&#034;&gt;
&lt;s:fill&gt;
&lt;s:SolidColor color=&#034;0x000000&#034; alpha=&#034;0.12&#034; /&gt;
&lt;/s:fill&gt;
&lt;/s:Rect&gt;
&lt;s:RichEditableText id=&#034;textDisplay&#034; verticalAlign=&#034;middle&#034;
widthInChars=&#034;10&#034; left=&#034;10&#034; right=&#034;10&#034; top=&#034;10&#034; bottom=&#034;7&#034; /&gt;
&lt;s:Label id=&#034;promptDisplay&#034; maxDisplayedLines=&#034;1&#034; verticalAlign=&#034;middle&#034;
mouseEnabled=&#034;false&#034; mouseChildren=&#034;false&#034;
includeIn=&#034;normalWithPrompt,disabledWithPrompt&#034;
includeInLayout=&#034;true&#034; fontStyle=&#034;normal&#034;
left=&#034;10&#034; right=&#034;10&#034; top=&#034;10&#034; bottom=&#034;7&#034;/&gt;
&lt;/s:SparkSkin&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><u>skins/SearchButtonSkin.mxml</u></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">&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;
xmlns:mx=&#034;library://ns.adobe.com/flex/mx&#034; xmlns:assets=&#034;assets.*&#034;
minHeight=&#034;30&#034; minWidth=&#034;30&#034;&gt;
&lt;fx:Metadata&gt;
[HostComponent(&#034;spark.components.Button&#034;)]
&lt;/fx:Metadata&gt;
&lt;s:states&gt;
&lt;s:State name=&#034;disabled&#034; /&gt;
&lt;s:State name=&#034;down&#034; /&gt;
&lt;s:State name=&#034;over&#034; /&gt;
&lt;s:State name=&#034;up&#034; /&gt;
&lt;/s:states&gt;
&lt;s:Rect left=&#034;0&#034; right=&#034;0&#034; top=&#034;0&#034; bottom=&#034;0&#034;
topRightRadiusX=&#034;3&#034; topRightRadiusY=&#034;3&#034; bottomRightRadiusX=&#034;3&#034;
bottomRightRadiusY=&#034;3&#034;&gt;
&lt;s:stroke&gt;
&lt;s:SolidColorStroke color=&#034;#1A1A1A&#034; weight=&#034;1&#034;/&gt;
&lt;/s:stroke&gt;
&lt;s:fill&gt;
&lt;s:LinearGradient rotation=&#034;90&#034;&gt;
&lt;s:GradientEntry color=&#034;0x999999&#034; color.up=&#034;0x666666&#034;/&gt;
&lt;s:GradientEntry color=&#034;0x4D4D4D&#034; color.up=&#034;0x333333&#034;/&gt;
&lt;/s:LinearGradient&gt;
&lt;/s:fill&gt;
&lt;/s:Rect&gt;
&lt;assets:search_icon horizontalCenter=&#034;0&#034; verticalCenter=&#034;0&#034;/&gt;
&lt;!-- SkinParts
name=iconDisplay, type=spark.primitives.BitmapImage, required=false
name=labelDisplay, type=spark.core.IDisplayText, required=false--&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">
<h2><a name="tutorial"></a>Tutorial</h2>
<p>In this tutorial, you learn to change the appearance of components by creating and using skins. You will skin the TextInput and Button controls used to search the employees. To customize the look and layout of the TextInput control, you create a new skin based on its default skin and then modify it. For the search button, you create a completely new skin and then add graphics to it.</p>
<h3>Step 1: Create a new skin for the TextInput control.</h3>
<p><i>Return to Design mode of FlexWebTestDrive.mxml. Select the </i><code>searchTxt</code><i>TextInput control. In the Properties view, click the button next to the Skin field and select Create Skin (see Figure 1). In the New MXML Skin dialog box, set the package to <b>skins</b> and the name to <b>SearchInputSkin</b>; leave the host component set to spark.components.TextInput, create it as a copy of spark.skins.spark.TextInputSkin, and remove the ActionScript styling code (see Figure 2).</i></p>
</div>
</div>
<a name="articlecontentAdobe_image" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Create a new skin for the TextInput control. " alt="Create a new skin for the TextInput control. " class="cq-dd-image LayoutImage LayoutRow " src="/content/dotcom/en/devnet/flex/testdrive/articles/5_customize_app2/_jcr_content/articlecontentAdobe/image.adimg.mw.582.jpg/1309382846323.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 1. Create a new skin for the TextInput control. </div>
</div>
<a name="articlecontentAdobe_image_0" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Create SearchInputSkin as a copy of the default TextInputSkin. " alt="Create SearchInputSkin as a copy of the default TextInputSkin. " class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_02.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 2. Create SearchInputSkin as a copy of the default TextInputSkin. </div>
</div>
<a name="articlecontentAdobe_text_3" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>In FlexWebTestDrive.mxml, switch to Source mode and look at the TextInput tag. It now has&nbsp; a <code>skinClass</code> style set to the name of the new skin SearchInputSkin—which currently is the same as the default skin.</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;s:TextInput id=&#034;searchTxt&#034; prompt=&#034;Last Name&#034; skinClass=&#034;skins.SearchInputSkin&#034; .../&gt;</code>
</div>
</div>
<a name="articlecontentAdobe_text_4" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<h3>Step 2: Set the skinClass in the style sheet.</h3>
<p><i>Switch back to Design mode and with the TextInput selected, click Convert to CSS. In the New Style Rule dialog box, select Specific component with style name and name it <b>searchInput</b> (see Figure 3). Make this the style used by the search TextInput control in all the application states. </i></p>
</div>
</div>
<a name="articlecontentAdobe_image_3" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Create a class selector for TextInput controls." alt="Create a class selector for TextInput controls." class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_03.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 3. Create a class selector for TextInput controls.</div>
</div>
<a name="articlecontentAdobe_text_5" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>The new selector should appear as shown here:</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">s|TextInput.searchInput
{
skinClass: ClassReference(&#034;skins.SearchInputSkin&#034;);
}
</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>This class selector can only be applied to TextInput controls.<br>
</p>
<p>Return to FlexWebTestDrive.mxml and note that <code>styleName</code> has only been set for one of the application states. To set it for all states, modify the source code or select the TextInput control and select Apply Current Properties to All States.</p>
<p>Note that instead of creating a class selector and applying it to the one TextInput instance as you did here, you could also have created and used an ID selector.</p>
<h3>Step 3: Review the skin class.</h3>
<p><i>Review the code for SearchInputSkin.mxml.</i></p>
<p>The skin class extends the SparkSkin base class and defines its host component, the component this skin can be applied to:</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">[HostComponent(&#034;spark.components.TextInput&#034;)]</code>
</div>
</div>
<a name="articlecontentAdobe_text_7" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>In the Script block is some code to specify what subcomponents should be excluded when rendering a focus ring for the component.</p>
<p>Next, the skin states are defined:</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;s:states&gt;
&lt;s:State name=&#034;normal&#034;/&gt;
&lt;s:State name=&#034;disabled&#034; stateGroups=&#034;disabledStates&#034;/&gt;
&lt;s:State name=&#034;normalWithPrompt&#034;/&gt;
&lt;s:State name=&#034;disabledWithPrompt&#034; stateGroups=&#034;disabledStates&#034;/&gt;
&lt;/s:states&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_text_33" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>You can look up the names of the skin states the skin should contain in the component's API (see Figure 4). Remember you can open a component's API by selecting Help &gt; Dynamic Help, clicking a tag in MXML, and then clicking the API link in the Help view.</p>
</div>
</div>
<a name="articlecontentAdobe_image_1" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Navigate to the TextInput skin states in the API." alt="Navigate to the TextInput skin states in the API." class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_04.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 4. Navigate to the TextInput skin states in the API.</div>
</div>
<a name="articlecontentAdobe_text_8" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>Next are graphics tags that provide a way to define graphics with MXML tags (see Figure 5). There are multiple Rect tags, which draw rectangles for a border, fill, and shadow for TextInput controls that use this skin. The order in which the elements are defined defines their depth, so the fill rectangle is drawn on top of the border rectangle and the shadow rectangle on top of the fill rectangle.</p>
</div>
</div>
<a name="articlecontentAdobe_image_4" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Review the graphics code." alt="Review the graphics code." class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_05.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 5. Review the graphics 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>At the end of the code are RichEditableText and Label controls. The RichEditableText control is the part of the TextInput component that holds and displays the input value. It is called a skin part and is a subcomponent of the TextInput control. The <code>text</code> property of the RichEditableText skin part gets set (in the TextInput component source code) to the <code>text</code> property of the TextInput control, which can be set programatically or by user input. The various attributes of the RichEditableText control specify where the RichEditableText should appear in the TextInput control; in this case, it is vertically aligned, with at least 1 pixel from the top, bottom, right, and left edges of the TextInput control. You modify these values to change where the RichEditableText control is displayed within the TextInput control.</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;s:RichEditableText id=&#034;textDisplay&#034;
verticalAlign=&#034;middle&#034;
widthInChars=&#034;10&#034;
left=&#034;1&#034; right=&#034;1&#034; top=&#034;1&#034; bottom=&#034;1&#034; /&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_text_10" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>The Label control is the skin part of the TextInput component that holds and displays the optional prompt value. The&nbsp; <code>text</code> property of the Label skin part is set (in the TextInput component source code) to the <code>prompt</code> property of the TextInput control. Just as for the RichEditableText skin part, you can set various attributes of the Label control to specify where the prompt Label should appear in the TextInput control.</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">&lt;s:Label id=&#034;promptDisplay&#034; maxDisplayedLines=&#034;1&#034;
verticalAlign=&#034;middle&#034;
mouseEnabled=&#034;false&#034; mouseChildren=&#034;false&#034;
includeIn=&#034;normalWithPrompt,disabledWithPrompt&#034;
includeInLayout=&#034;false&#034;/&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_text_13" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>Note, the id values assigned to the two controls:<code>textDisplay</code> and <code>promptDisplay</code>. These are the names assigned to the subcomponents (the skin parts) defined and referenced in the host component's source code, in this case, the TextInput control. In order for you to specify the look and layout of the skin parts, you must use the id's assigned and used by the host component. You can look up the names and types of the skin parts you can reference in a component skin in the component's API (see Figure 6).</p>
</div>
</div>
<a name="articlecontentAdobe_image_2" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Navigate to the TextInput skin parts in the API. " alt="Navigate to the TextInput skin parts in the API. " class="cq-dd-image LayoutImage LayoutRow " src="/content/dotcom/en/devnet/flex/testdrive/articles/5_customize_app2/_jcr_content/articlecontentAdobe/image_2.adimg.mw.650.jpg/1309382866456.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 6. Navigate to the TextInput skin parts in the API. </div>
</div>
<a name="articlecontentAdobe_text_14" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<h3>Step 4: Change the control's spacing.</h3>
<p><i>In the SparkSkin tag, set </i><code>minHeight</code><i> to <b>30</b>. In the RichEditableText tag, change the </i><code>left</code><i>,</i><code> right</code><i>, and </i><code>top</code><i> properties to <b>10</b> pixels and its </i><code>bottom</code><i> property to <b>7</b>.<b> </b>Add these same values to the Label control and also set the </i><code>includeInLayout</code><i> property to <b>true</b> and set its </i><code>fontStyle</code><i> to <b>normal</b>.</i></p>
<p>Your code should appear as shown here:</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">&lt;s:SparkSkin minHeight=&#034;30&#034; ...&gt;
(...)
&lt;s:RichEditableText id=&#034;textDisplay&#034;
verticalAlign=&#034;middle&#034;
widthInChars=&#034;10&#034;
left=&#034;10&#034; right=&#034;10&#034; top=&#034;10&#034; bottom=&#034;7&#034; /&gt;
&lt;s:Label id=&#034;promptDisplay&#034; maxDisplayedLines=&#034;1&#034;
verticalAlign=&#034;middle&#034;
mouseEnabled=&#034;false&#034; mouseChildren=&#034;false&#034;
includeIn=&#034;normalWithPrompt,disabledWithPrompt&#034;
includeInLayout=&#034;true&#034;
left=&#034;10&#034; right=&#034;10&#034; top=&#034;10&#034; bottom=&#034;7&#034;
fontStyle=&#034;normal&#034;/&gt;
&lt;/s:SparkSkin&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_text_15" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<h3>Step 5: Round the control's corners.</h3>
<p><i>To each of the three Rect tags, add </i>radiusX<i> and </i>radiusY<i> properties set to <b>3</b> pixels.</i></p>
<p>Example code for one of the rectangles is shown here:</p>
</div>
</div>
<a name="articlecontentAdobe_codeblock_10" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
<code class="CodeBlock">&lt;s:Rect left=&#034;0&#034; right=&#034;0&#034; top=&#034;0&#034; bottom=&#034;0&#034; id=&#034;border&#034; radiusX=&#034;3&#034; radiusY=&#034;3&#034;&gt;
&lt;s:stroke&gt;
&lt;s:SolidColorStroke id=&#034;borderStroke&#034; weight=&#034;1&#034; /&gt;
&lt;/s:stroke&gt;
&lt;/s:Rect&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_text_16" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>Run the application and/or switch to Design mode for FlexWebTestDrive.mxml. The search TextInput control should now be larger, have rounded corners, and the prompt should no longer be italic (see Figure 7).</p>
</div>
</div>
<a name="articlecontentAdobe_image_5" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="View the skinned TextInput control." alt="View the skinned TextInput control." class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_07.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 7. View the skinned TextInput control.</div>
</div>
<a name="articlecontentAdobe_text_17" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>Next, skin the search button.</p>
<h3>Step 6: Create a new Button skin file.</h3>
<p><i>Return to Design mode of FlexWebTestDrive.mxml.Select the Search button and in the Properties view, click the button next to the Skin field and select Create Skin. In the New MXML Skin dialog box, create a skin called <b>SearchButtonSkin</b> in the <b>skins</b> package, leave the host component as spark.components.ButtonSkin, and uncheck Create as copy of (see Figure 8).</i></p>
</div>
</div>
<a name="articlecontentAdobe_image_6" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Create SearchButtonSkin." alt="Create SearchButtonSkin." class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_08.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 8. Create SearchButtonSkin.</div>
</div>
<a name="articlecontentAdobe_text_18" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<h3>Step 7: Review the skin class.</h3>
<p><i>In SearchButtonSkin.mxml, switch to Source mode and review the code.</i></p>
<p>The skin class extends the Skin base class and because you specified a host component in the dialog box to create it, the host component is also set:</p>
</div>
</div>
<a name="articlecontentAdobe_codeblock_11" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
<code class="CodeBlock">[HostComponent(&#034;spark.components.Button&#034;)]</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>The skin states for a Button are also defined:</p>
</div>
</div>
<a name="articlecontentAdobe_codeblock_12" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
<code class="CodeBlock">&lt;s:states&gt;
&lt;s:State name=&#034;disabled&#034; /&gt;
&lt;s:State name=&#034;down&#034; /&gt;
&lt;s:State name=&#034;over&#034; /&gt;
&lt;s:State name=&#034;up&#034; /&gt;
&lt;/s:states&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_text_20" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>Lastly, there is a comment listing the names and types of all the required and optional skin parts so you don’t have to look them up in the API (see Figure 9):</p>
</div>
</div>
<a name="articlecontentAdobe_codeblock_13" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
<code class="CodeBlock">&lt;!-- SkinParts
name=iconDisplay, type=spark.primitives.BitmapImage, required=false
name=labelDisplay, type=spark.core.IDisplayText, required=false
--&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_image_7" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Look up the Button skin parts in the API." alt="Look up the Button skin parts in the API." class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_09.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 9. Look up the Button skin parts in the API.</div>
</div>
<a name="articlecontentAdobe_text_21" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<h3>Step 8: Download the Test Drive assets.</h3>
<p><i>Download and unzip <a href="testdrive/testdrive_assets.zip">testdrive_assets.zip</a> and add search_icon.fxg to the FlextWebTestDrive project's assets folder. Open assets/search_icon.fxg and review the code (see Figure 10).</i></p>
</div>
</div>
<a name="articlecontentAdobe_image_8" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Add assets/search_icon.fxg to your project and review the code" alt="Add assets/search_icon.fxg to your project and review the code" class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_10.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 10. Add assets/search_icon.fxg to your project and review the code</div>
</div>
<a name="articlecontentAdobe_text_22" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>FXG is a declarative XML syntax for defining vector graphics that closely follows the Flash Player 10 rendering model. This FXG file was created by drawing in Fireworks and then selecting Commands &gt; Export to FXG. You can also create FXG files using Illustrator or Photoshop.</p>
<p>In general, you should use an FXG file as a standalone component in your applications. This gives you the greatest amount of memory optimization, and lets you reuse your FXG files in other parts of the same application, or in other applications. In addition, by keeping the FXG file separate from the application, you can edit and export the FXG again from a graphics tool.</p>
<p>Although you can resize and animate the entire FXG component, you cannot modify objects within it at runtime. If you want to reference any of its subobjects, you need to convert the FXG syntax to MXML graphics and use those tags in your application instead.</p>
<h3>Step 10: Add the graphics to the skin.</h3>
<p><i>After the states in SearchButtonSkin.mxml, use Code Assist to select the search_icon FXG class (see Figure 11).</i></p>
</div>
</div>
<a name="articlecontentAdobe_image_9" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Add the search_icon FXG class." alt="Add the search_icon FXG class." class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_11.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 11. Add the search_icon FXG class.</div>
</div>
<a name="articlecontentAdobe_text_23" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>By using Code Assist, the namespace assignment was written for you in the Skin root tag: <code>xmlns:assets=&quot;assets.*&quot;</code>.</p>
<p>This tells the compiler where to find this class. You put the FXG file in the assets folder so&nbsp; assets.* says look for files with the name of the tag in the assets folder.</p>
<p>Your skin class should appear as shown here:</p>
</div>
</div>
<a name="articlecontentAdobe_codeblock_14" 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;
xmlns:mx=&#034;library://ns.adobe.com/flex/mx&#034; xmlns:assets=&#034;assets.*&#034;&gt;
&lt;fx:Metadata&gt;
[HostComponent(&#034;spark.components.Button&#034;)]
&lt;/fx:Metadata&gt;
&lt;s:states&gt;
&lt;s:State name=&#034;disabled&#034; /&gt;
&lt;s:State name=&#034;down&#034; /&gt;
&lt;s:State name=&#034;over&#034; /&gt;
&lt;s:State name=&#034;up&#034; /&gt;
&lt;/s:states&gt;
&lt;assets:search_icon/&gt;
&lt;/s:Skin&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_text_24" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>Save the file and then return to FlexWebTestDrive.mxml in Design mode. You should see the search button with the new skin (see Figure 12).</p>
</div>
</div>
<a name="articlecontentAdobe_image_10" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="View the skinned search button." alt="View the skinned search button." class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_12.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 12. View the skinned search button.</div>
</div>
<a name="articlecontentAdobe_text_25" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<h3>Step 11: Size and position the icon.</h3>
<p><i>Return to SparkButtonSkin and set the</i> <code>minHeight</code> <i>and</i> <code>minWidth</code> <i>properties of the Skin class to <b>30</b>. In the search_icon tag, set the </i><code>horizontalCenter</code> <i>and</i> <code>verticalCenter</code> <i>properties to <b>0</b>.</i></p>
</div>
</div>
<a name="articlecontentAdobe_codeblock_15" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
<code class="CodeBlock">&lt;s:Skin xmlns:assets=&#034;assets.*&#034; minHeight=&#034;30&#034; minWidth=&#034;30&#034; ...&gt;
(...)
&lt;assets:search_icon horizontalCenter=&#034;0&#034; verticalCenter=&#034;0&#034;/&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_text_26" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<h3>Step 12: Add a background rectangle.</h3>
<p><i>Above the search_icon tag, add a Rect tag and set its </i><code>left</code><i>, </i><code>right</code><i>, </i><code>top</code><i>, and </i><code>bottom</code> <i>properties to <b>0</b>. Set its </i><code>topRightRadiusX</code><i>, </i><code>topRightRadiusY</code><i>, </i><code>bottomRightRadiusX</code><i>, and </i><code>bottomRightRadiusY</code> <i>properties to <b>3</b>. Set its </i><code>stroke</code> <i>property to an instance of the SolidColorStroke class with a </i><code>color</code> <i>of <b>#1A1A1A</b></i>.</p>
</div>
</div>
<a name="articlecontentAdobe_codeblock_16" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
<code class="CodeBlock">&lt;s:Rect left=&#034;0&#034; right=&#034;0&#034; top=&#034;0&#034; bottom=&#034;0&#034; topRightRadiusX=&#034;3&#034; topRightRadiusY=&#034;3&#034; bottomRightRadiusX=&#034;3&#034; bottomRightRadiusY=&#034;3&#034;&gt;
&lt;s:stroke&gt;
&lt;s:SolidColorStroke color=&#034;#1A1A1A&#034; weight=&#034;1&#034;/&gt;
&lt;/s:stroke&gt;
&lt;/s:Rect&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_text_27" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>The size of the rectangle is set by setting the <code>left</code>, <code>right</code>, <code>top</code>, and <code>bottom</code> properties to 0. The rectangle will fill the entire area of the button, leaving 0 pixels on each side.</p>
<p>The corner curvature is set by the radius properties. The corners on the right side will be rounded, the corners on the left side will be square (because no radii were specified).</p>
<p>The rectangle will be outlined with a solid dark line with a thickness of 1 pixel.</p>
<h3>Step 13: Add a gradient fill.</h3>
<p><i>Set the rectangle's </i><code>fill</code> <i>property to an instance of the LinearGradient class with a </i><code>rotation</code> <i>of <b>90</b>. Add a GradientEntry with a </i><code>color</code> <i>of <b>0x999999</b> and a color in the up state of<b> 0x666666</b>. Add a second GradientEntry with a </i><code>color</code> <i>of <b>0x4D4D4D</b> and a color in the up state of <b>0x333333</b>.</i></p>
</div>
</div>
<a name="articlecontentAdobe_codeblock_17" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
<code class="CodeBlock">&lt;s:Rect left=&#034;0&#034; right=&#034;0&#034; top=&#034;0&#034; bottom=&#034;0&#034; topRightRadiusX=&#034;3&#034; topRightRadiusY=&#034;3&#034; bottomRightRadiusX=&#034;3&#034; bottomRightRadiusY=&#034;3&#034;&gt;
&lt;s:stroke&gt;
&lt;s:SolidColorStroke color=&#034;#1A1A1A&#034; weight=&#034;1&#034;/&gt;
&lt;/s:stroke&gt;
&lt;s:fill&gt;
&lt;s:LinearGradient rotation=&#034;90&#034;&gt;
&lt;s:GradientEntry color=&#034;0x999999&#034; color.up=&#034;0x666666&#034;/&gt;
&lt;s:GradientEntry color=&#034;0x4D4D4D&#034; color.up=&#034;0x333333&#034;/&gt;
&lt;/s:LinearGradient&gt;
&lt;/s:fill&gt;
&lt;/s:Rect&gt;
</code>
</div>
</div>
<a name="articlecontentAdobe_text_28" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>Save the file.</p>
<h3>Step 14: Position the search controls.</h3>
<p><i>Return to Design mode of FlexWebTestDrive.mxml and reposition the search TextInput and Button controls (see Figure 13). Make these the properties for all states.</i></p>
</div>
</div>
<a name="articlecontentAdobe_image_11" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Position the search controls." alt="Position the search controls." class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_13.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 13. Position the search controls.</div>
</div>
<a name="articlecontentAdobe_text_29" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>To set the positions for all states, modify the source code or select each control and select Apply Current Properties to all Components.</p>
<h3>Step 15: Set the skinClass in the style sheet.</h3>
<p><i>With the Search button selected, click Convert to CSS. In the New Style Rule dialog box, select Specific component with style name and name it <b>searchButton</b> (see Figure 14). Return to Design mode of FlexWebTestDrive.mxml and make this the style for all states by right-clicking the search button and selecting Apply Current Properties to All States.</i></p>
</div>
</div>
<a name="articlecontentAdobe_image_12" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Create a searchButton class selector for Button controls." alt="Create a searchButton class selector for Button controls." class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_14.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 14. Create a searchButton class selector for Button controls.</div>
</div>
<a name="articlecontentAdobe_text_30" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>The new selector should appear as shown here:</p>
</div>
</div>
<a name="articlecontentAdobe_codeblock_18" style="visibility:hidden"></a><div class="parbase codeblock compbase section"><div class="PanelFillLight PanelBevelTop LayoutCell LayoutRow">
<code class="CodeBlock">s|Button.searchButton
{
skinClass: ClassReference(&#034;skins.SearchButtonSkin&#034;);
}
</code>
</div>
</div>
<a name="articlecontentAdobe_text_31" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>Run the application (see Figure 15). Enter a last name and click the search button; the controls should work exactly as before—they just have a new look.</p>
</div>
</div>
<a name="articlecontentAdobe_image_13" style="visibility:hidden"></a><div class="parbase image section"><div class="LayoutRow LayoutCellSides">
<img title="Use the skinned search controls." alt="Use the skinned search controls." class="cq-dd-image LayoutImage LayoutRow " src="devnet/flex/testdrive/articles/5_customize_app2/fig_15.jpg"/></div>
<div class="TextSmall LayoutCellSides LayoutRowTop LayoutBigRowBottom">
Figure 15. Use the skinned search controls.</div>
</div>
<a name="articlecontentAdobe_text_32" style="visibility:hidden"></a><div class="text parbase section"><div class="Semantic LayoutCellSides LayoutBreakAfter TextMedium TextBreak">
<p>You have now successfully skinned the TextInput and Button controls used to search the employees in the application.</p>
<p>In this tutorial, you learned to use skins to change the appearance of components. &nbsp;You learned to create and modify a skin based on a default component skin and to create and add graphics to a new skin. In the <a href="/devnet/flex/testdrive/articles/5_customize_app3.html">next tutorial</a> you skin the other controls in the application.</p>
<h3><a name="links"></a>Learn more</h3>
<h4>Documentation: Using Flex 4.5</h4>
<ul type="disc">
<li><a href="http://help.adobe.com/en_US/flex/using/WS53116913-F952-4b21-831F-9DE85B647C8A.html">Spark Skinning</a></li>
<li><a href="http://help.adobe.com/en_US/flex/using/WSA95C9644-B650-4783-B5C0-D2C7F95A23E3.html">Skinning Spark components</a></li>
<li><a href="http://help.adobe.com/en_US/flex/using/WSda78ed3a750d6b8fee1b36612357de97a3-8000.html">MXML graphics</a></li>
<li><a href="http://help.adobe.com/en_US/flex/using/WSda78ed3a750d6b8f-237979311225c0987ce-8000.html">Graphics classes and elements</a></li>
<li><a href="http://help.adobe.com/en_US/flex/using/WSda78ed3a750d6b8f26c150d412357de3591-8000.html#WS19f279b149e7481c1ce62b4a12b7ceade98-8000">FXG</a></li>
<li><a href="http://help.adobe.com/en_US/flex/using/WSA95C9644-B650-4783-B5C0-D2C7F95A23E3.html#WSE59B1086-65B0-489a-8B13-21F9C09F8C44">Using style properties in skins</a></li>
</ul>
<h4>ActionScript 3 Reference</h4>
<ul type="disc">
<li><a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/components/package-detail.html">spark.components</a></li>
<li><a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/primitives/package-detail.html">spark.primitives</a></li>
<li><a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/graphics/package-detail.html">mx.graphics</a><br>
</li>
</ul>
<h4>Flex Developer Center</h4>
<ul type="disc">
<li><a href="http://www.adobe.com/devnet/flex/design.html">UI design and RIA workflows</a></li>
<li><a href="http://www.adobe.com/devnet/flashcatalyst.html">Flash Catalyst Developer Center</a></li>
</ul>
<h4>Documentation: Using Fireworks</h4>
<ul type="disc">
<li><a href="http://help.adobe.com/en_US/fireworks/cs/using/WSAE097016-F00C-4599-87E9-7AB8735BE5C9.html">Prototyping Flex applications</a></li>
<li><a href="http://help.adobe.com/en_US/fireworks/cs/using/WSf01dbd23413dda0e171945b7123ebcf3491-7ffe.html">Export FXG files</a></li>
</ul>
<h4>Documentation: Using Illustrator</h4>
<ul type="disc">
<li><a href="http://help.adobe.com/en_US/illustrator/cs/using/WS25dc2c49b27459df39bf4ab01266449a764-8000.html">Working with FXG</a></li>
</ul>
<h4>Documentation: Using Photoshop</h4>
<ul type="disc">
<li><a href="http://labs.adobe.com/technologies/photoshopcs5_fxg/">Photoshop CS5 FXG Extension</a></li>
</ul>
</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 target="_blank" href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><img src="http://cookbooks.adobe.com/resources/images/license_creative_commons.png" alt="Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License"></a>+<a target="_blank" href="/communities/guidelines/ccplus/commercialcode_plus_permission.html"><img src="http://cookbooks.adobe.com/resources/images/license_adobe.jpg" alt="Adobe Commercial Rights"></a></p>
<p>This work is licensed under a <a target="_blank" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Permissions beyond the scope of this license, pertaining to the examples of code included within this work are available at <a target="_blank" href="/communities/guidelines/ccplus/commercialcode_plus_permission.html">Adobe</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/testdrive/articles/2_modify_the_database.html" title="Flex Test Drive: Modify the database">Flex Test Drive: Modify the database</a></li>
<li class="LayoutSmallRowBottom">
<a href="/devnet/flex/testdrive/articles/1_build_a_flex_app3.html" title="Flex Test Drive: Build an application in an hour">Flex Test Drive: Build an application in an hour</a></li>
<li class="LayoutSmallRowBottom">
<a href="/devnet/flex/testdrive/articles/5_customize_app3.html" title="Flex Test Drive: Change the appearance of your application">Flex Test Drive: Change the appearance of your application</a></li>
<li class="LayoutSmallRowBottom">
<a href="/devnet/flex/testdrive/articles/1_build_a_flex_app2.html" title="Flex Test Drive: Build an application in an hour">Flex Test Drive: Build an application in an hour</a></li>
<li class="LayoutSmallRowBottom">
<a href="/devnet/flex/testdrive/articles/4_deploy_app2.html" title="Flex Test Drive: Deploy your application to a web server">Flex Test Drive: Deploy your application to a web server</a></li>
<li class="LayoutSmallRowBottom">
<a href="/devnet/flex/testdrive/articles/6_add_charts.html" title="Flex Test Drive: Add charts and graphs">Flex Test Drive: Add charts and graphs</a></li>
<li class="LayoutSmallRowBottom">
<a href="/devnet/flex/testdrive/articles/newcontent/4_deploy_app2.html" title="Test Drive: Deploy your application to a web server">Test Drive: Deploy your application to a web server</a></li>
<li class="LayoutSmallRowBottom">
<a href="/devnet/flex/testdrive/articles/6_add_charts2.html" title="Flex Test Drive: Add charts and graphs">Flex Test Drive: Add charts and graphs</a></li>
<li class="LayoutSmallRowBottom">
<a href="/devnet/flex/testdrive/articles/1_build_a_flex_app.html" title="Flex Test Drive: Build an application in an hour">Flex Test Drive: Build an application in an hour</a></li>
<li class="LayoutSmallRowBottom">
<a href="/devnet/flex/testdrive/articles/1_build_a_flex_app4.html" title="Flex Test Drive: Build an application in an hour">Flex Test Drive: Build an application in an hour</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 and 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 class="parsys"><div id="inheritedResources2">
<div class="rss section"><div id="rss-feed-1283313561183" class="RSSFeed ">
<div pathToMoreText="moreText" class="LayoutRow LayoutBreakAfter TextH5">
<table class="LayoutMaxH">
<tbody>
<tr>
<td class="PanelFillDark">
<a href="http://forums.adobe.com/community/flex" class="RouterBarLink"><h2 class="TextH5 LayoutCellSides LayoutSmallCellVSides">
Flex user forum</h2>
</a></td>
<td class="LayoutCellSides LayoutSmallCellVSides RouterButton RouterMore" style="width: 40px">
<a href="http://forums.adobe.com/community/flex" class="RouterLink" title="More" target="_self">More</a></td>
</tr>
</tbody>
</table>
</div>
<div class="LayoutRowBottom LayoutCellSides TextSmall">
<table>
<tr>
<th class="TableCell TableNumber shortDateFormat">
11/11/2013</th>
<td>
<a class="" href="http://forums.adobe.com/thread/1332613" target="_self">Re: TLF2.0 underline applied with ListElement bullet symbol</a>
</td>
</tr>
<tr>
<th class="TableCell TableNumber shortDateFormat">
03/27/2012</th>
<td>
<a class="" href="http://forums.adobe.com/thread/981440" target="_self">Adobe air mobile - softKeyboardType is not working when using skinClass to allow scrolling?</a>
</td>
</tr>
<tr>
<th class="TableCell TableNumber shortDateFormat">
11/30/2011</th>
<td>
<a class="" href="http://forums.adobe.com/thread/931250" target="_self">Flex 4.6 mobile broke TextInput</a>
</td>
</tr>
<tr>
<th class="TableCell TableNumber shortDateFormat">
11/23/2011</th>
<td>
<a class="" href="http://forums.adobe.com/thread/928486" target="_self">Scrolling-problem with Textinput (mobile project)</a>
</td>
</tr>
</table>
</div>
</div>
</div>
</div></div>
</div>
</div>
<div class="ArticleGrid-4 LayoutSlimGrid-1-2 ArticleWideGridColReset">
<div class="parsys inheritedResources3 inheritedresources"><div class="parsys"><div id="inheritedResources3">
<div class="rss section"><div id="rss-feed-1283284018001" class="RSSFeed ">
</div>
</div>
</div></div>
</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>