<!--
  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.
-->
<!-- saved from url=(0014)about:internet -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>sample1.mxml</title>
<link rel="stylesheet" type="text/css" href="../SourceStyles.css"/>
</head>

<body><pre><span class="MXMLProcessing_Instruction">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;</span>
<span class="MXMLComponent_Tag">&lt;mx:Application</span><span class="MXMLDefault_Text"> xmlns:mx=&quot;</span><span class="MXMLString">http://www.adobe.com/2006/mxml</span><span class="MXMLDefault_Text">&quot; layout=&quot;</span><span class="MXMLString">vertical</span><span class="MXMLDefault_Text">&quot; verticalAlign=&quot;</span><span class="MXMLString">top</span><span class="MXMLDefault_Text">&quot;
    horizontalAlign=&quot;</span><span class="MXMLString">center</span><span class="MXMLDefault_Text">&quot; backgroundGradientColors=&quot;</span><span class="MXMLString">[0x000000,0x323232]</span><span class="MXMLDefault_Text">&quot; paddingTop=&quot;</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">&quot; viewSourceURL=&quot;</span><span class="MXMLString">srcview/index.html</span><span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">&gt;</span>
    
    <span class="MXMLComponent_Tag">&lt;mx:Glow</span><span class="MXMLDefault_Text"> id=&quot;</span><span class="MXMLString">glowImage</span><span class="MXMLDefault_Text">&quot; duration=&quot;</span><span class="MXMLString">1000</span><span class="MXMLDefault_Text">&quot; alphaFrom=&quot;</span><span class="MXMLString">1.0</span><span class="MXMLDefault_Text">&quot; alphaTo=&quot;</span><span class="MXMLString">0.3</span><span class="MXMLDefault_Text">&quot; blurXFrom=&quot;</span><span class="MXMLString">0.0</span><span class="MXMLDefault_Text">&quot; blurXTo=&quot;</span><span class="MXMLString">50.0</span><span class="MXMLDefault_Text">&quot; blurYFrom=&quot;</span><span class="MXMLString">0.0</span><span class="MXMLDefault_Text">&quot; blurYTo=&quot;</span><span class="MXMLString">50.0</span><span class="MXMLDefault_Text">&quot; color=&quot;</span><span class="MXMLString">0x22A050</span><span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">/&gt;</span>
    
    <span class="MXMLComponent_Tag">&lt;mx:Glow</span><span class="MXMLDefault_Text"> id=&quot;</span><span class="MXMLString">unglowImage</span><span class="MXMLDefault_Text">&quot; duration=&quot;</span><span class="MXMLString">1000</span><span class="MXMLDefault_Text">&quot; alphaFrom=&quot;</span><span class="MXMLString">0.3</span><span class="MXMLDefault_Text">&quot; alphaTo=&quot;</span><span class="MXMLString">1.0</span><span class="MXMLDefault_Text">&quot; blurXFrom=&quot;</span><span class="MXMLString">50.0</span><span class="MXMLDefault_Text">&quot; blurXTo=&quot;</span><span class="MXMLString">0.0</span><span class="MXMLDefault_Text">&quot; blurYFrom=&quot;</span><span class="MXMLString">50.0</span><span class="MXMLDefault_Text">&quot; blurYTo=&quot;</span><span class="MXMLString">0.0</span><span class="MXMLDefault_Text">&quot; color=&quot;</span><span class="MXMLString">0x3380DD</span><span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">/&gt;</span>
        
    <span class="MXMLComponent_Tag">&lt;mx:Panel</span><span class="MXMLDefault_Text"> title=&quot;</span><span class="MXMLString">Glow Effect</span><span class="MXMLDefault_Text">&quot; layout=&quot;</span><span class="MXMLString">vertical</span><span class="MXMLDefault_Text">&quot; color=&quot;</span><span class="MXMLString">0xffffff</span><span class="MXMLDefault_Text">&quot; borderAlpha=&quot;</span><span class="MXMLString">0.15</span><span class="MXMLDefault_Text">&quot; width=&quot;</span><span class="MXMLString">500</span><span class="MXMLDefault_Text">&quot;
         paddingTop=&quot;</span><span class="MXMLString">10</span><span class="MXMLDefault_Text">&quot; paddingRight=&quot;</span><span class="MXMLString">10</span><span class="MXMLDefault_Text">&quot; paddingBottom=&quot;</span><span class="MXMLString">10</span><span class="MXMLDefault_Text">&quot; paddingLeft=&quot;</span><span class="MXMLString">10</span><span class="MXMLDefault_Text">&quot; horizontalAlign=&quot;</span><span class="MXMLString">center</span><span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">&gt;</span>
         
         <span class="MXMLComponent_Tag">&lt;mx:Text</span><span class="MXMLDefault_Text"> width=&quot;</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">&quot; color=&quot;</span><span class="MXMLString">0x323232</span><span class="MXMLDefault_Text">&quot; textAlign=&quot;</span><span class="MXMLString">center</span><span class="MXMLDefault_Text">&quot; paddingBottom=&quot;</span><span class="MXMLString">10</span><span class="MXMLDefault_Text">&quot;
            text=&quot;</span><span class="MXMLString">Click and hold the mouse on the image to see glowImage effect. Release the mouse to see unglowImage effect.</span><span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">/&gt;</span>

        <span class="MXMLComponent_Tag">&lt;mx:Image</span><span class="MXMLDefault_Text"> id=&quot;</span><span class="MXMLString">flex</span><span class="MXMLDefault_Text">&quot; source=&quot;</span><span class="MXMLString">@Embed(&apos;images/helmet.png&apos;)</span><span class="MXMLDefault_Text">&quot; mouseDownEffect=&quot;</span><span class="MXMLString">{</span><span class="ActionScriptDefault_Text">glowImage</span><span class="MXMLString">}</span><span class="MXMLDefault_Text">&quot; mouseUpEffect=&quot;</span><span class="MXMLString">{</span><span class="ActionScriptDefault_Text">unglowImage</span><span class="MXMLString">}</span><span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">/&gt;</span>

    <span class="MXMLComponent_Tag">&lt;/mx:Panel&gt;</span>
    
<span class="MXMLComponent_Tag">&lt;/mx:Application&gt;</span></pre></body>
</html>
