<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/12/25/setting-the-focal-point-on-a-rect-object-in-flex-gumbo/ -->
<Application name="Rect_fill_RadialGradient_focalPointRatio_test"
        xmlns="http://ns.adobe.com/mxml/2009"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white"
        initialize="init();">

    <Script>
        <![CDATA[
            import mx.containers.ApplicationControlBar;
            import mx.containers.Form;
            import mx.containers.FormItem;
            import mx.controls.HSlider;
            import mx.events.SliderEvent;
            import mx.graphics.GradientEntry;
            import mx.graphics.Graphic;
            import mx.graphics.RadialGradient;
            import mx.graphics.Rect;

            private var slider1:HSlider;
            private var slider2:HSlider;
            private var rect:Rect;
            private var radialGradient:RadialGradient;

            private function init():void {
                slider1 = new HSlider();
                slider1.minimum = -1.0;
                slider1.maximum = 1.0;
                slider1.value = 0.0;
                slider1.snapInterval = 0.1;
                slider1.tickInterval = 0.1;
                slider1.liveDragging = true;
                slider1.addEventListener(SliderEvent.CHANGE, slider1_change);

                slider2 = new HSlider();
                slider2.minimum = -360;
                slider2.maximum = 360;
                slider2.value = 0;
                slider2.snapInterval = 1;
                slider2.tickInterval = 45;
                slider2.liveDragging = true;
                slider2.addEventListener(SliderEvent.CHANGE, slider2_change);

                var formItem1:FormItem = new FormItem();
                formItem1.label = "focalPointRatio:";
                formItem1.addChild(slider1);

                var formItem2:FormItem = new FormItem();
                formItem2.label = "rotation:";
                formItem2.addChild(slider2);

                var form:Form = new Form();
                form.styleName = "plain";
                form.addChild(formItem1);
                form.addChild(formItem2);

                var appControlBar:ApplicationControlBar = new ApplicationControlBar();
                appControlBar.dock = true;
                appControlBar.addChild(form);
                addChildAt(appControlBar, 0);

                var entryArr:Array = [];
                entryArr.push(new GradientEntry(0xFF0000)); // red
                entryArr.push(new GradientEntry(0xFFFFFF)); // white
                entryArr.push(new GradientEntry(0x0000FF)); // blue

                radialGradient = new RadialGradient();
                radialGradient.entries = entryArr;

                rect = new Rect();
                rect.fill = radialGradient;
                rect.width = 300;
                rect.height = 200;

                var graphic:Graphic = new Graphic();
                graphic.addElement(rect);
                addChild(graphic);
            }

            private function slider1_change(evt:SliderEvent):void {
                radialGradient.focalPointRatio = evt.value;
            }

            private function slider2_change(evt:SliderEvent):void {
                radialGradient.rotation = evt.value;
            }
        ]]>
    </Script>

</Application>