Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   BitmapData не загружает изображение (http://www.flasher.ru/forum/showthread.php?t=170152)

varnava.a 19.10.2011 16:58

BitmapData не загружает изображение
 
Добрый день. Подскажите пожалуйста. Задача. нарисовать прямоугольник и заполнить его растровым изображением, нарисовать круг и залить цветом. Получается круг создаётся и заливается, а прямоугольник получается прозрачным В чём причина что не так?

Код:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
                      xmlns:mx="library://ns.adobe.com/flex/mx"
                      width="900" height="700"
                      showStatusBar="false"
                      backgroundAlpha="0.0"
                      creationComplete= "openNewWindow()"
                      >
    <fx:Script>
        <![CDATA[
            import flash.desktop.DockIcon;
            import flash.desktop.NativeApplication;
            import flash.desktop.SystemTrayIcon;
            import flash.display.DisplayObject;
            import flash.display.NativeWindow;
            import flash.display.NativeWindowDisplayState;
            import flash.display.NativeWindowResize;
            import flash.display.NativeWindowSystemChrome;
            import flash.display.NativeWindowType;
            import flash.display.Screen;
            import flash.events.Event;
            import flash.events.InvokeEvent;
            import flash.events.MouseEvent;
            import flash.events.NativeWindowBoundsEvent;
            import flash.events.NativeWindowDisplayStateEvent;
            import flash.filesystem.File;
            import flash.geom.Point;
            import flash.geom.Rectangle;
            import com.adobe.viewsource.ViewSource;
         
            import flash.display.Sprite;
            import flash.display.BitmapData;
            import flash.display.Loader;
            import flash.net.URLRequest;
            import flash.events.Event;
            import flash.events.IOErrorEvent;
            import flash.geom.Matrix;         
            import mx.controls.Alert;
            import mx.core.IChildList;
            import mx.core.UIComponent;
            import mx.core.IUIComponent;
   
            private function openNewWindow():void {
             
                const screenRect:Rectangle = Screen.mainScreen.visibleBounds;
                const screenWidth:int = screenRect.width;
                const screenHeight:int = screenRect.height;
                const winWidth:int = screenWidth * 0.25;
                const winHeight:int = screenHeight * 0.75;
                const winXrect:int = winWidth/2;
             
             
             
                var loader:Loader = new Loader();
              var request:URLRequest = new URLRequest("fon.jpg");
              loader.load(request);             
             
                var myBitmap:BitmapData = new BitmapData (winWidth, winHeight, false);             
             
              myBitmap.draw(loader, new Matrix());
              var matrix:Matrix = new Matrix();
                matrix.rotate(Math.PI/4);
                loader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage);
                loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
             
             
             
             
            function drawImage(event:Event):void {
             
                var mySprite:Sprite = new Sprite();
                mySprite.graphics.beginFill(0xFFCC00,1);
                mySprite.graphics.drawCircle(winXrect, 0, 20);
         
             
                mySprite.graphics.beginBitmapFill(myBitmap, matrix, true,true);
                mySprite.graphics.drawRoundRect(0, 0, winWidth, winHeight,25);
                mySprite.graphics.endFill();
             
                var container:UIComponent = new UIComponent();
                addElement( container );             
                container.addChild( mySprite );
                rec.addElement(container);
                }
             
                function ioErrorHandler(event:IOErrorEvent):void {
                    trace("Unable to load image: " + url);
                }
     
           
         
            }
         
        ]]>
    </fx:Script>
 
 
    <fx:Declarations>
        <fx:Component className="MyNativeWindow">
            <mx:Window horizontalAlign="center" verticalAlign="middle" backgroundColor="blue" right="673" top="0"> 
               
            </mx:Window>
        </fx:Component>
    </fx:Declarations>
 
 
    <s:VGroup id="rec"  top="10">
     
            <mx:Button label="close" click="this.close()"/>

    </s:VGroup>
 
</s:WindowedApplication>


alatar 20.10.2011 22:18

Код AS3:

mySprite.graphics.beginFill(0xFFCC00,1);
mySprite.graphics.drawCircle(winXrect, 0, 20);
mySprite.graphics.endFill();
 
mySprite.graphics.beginFill(0xFFCC00,1);
mySprite.graphics.beginBitmapFill(myBitmap, matrix, true,true);
mySprite.graphics.drawRoundRect(0, 0, winWidth, winHeight,25);
mySprite.graphics.endFill();



Часовой пояс GMT +4, время: 14:36.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.