varnava.a
19.10.2011, 16:58
Добрый день. Подскажите пожалуйста. Задача. нарисовать прямоугольник и заполнить его растровым изображением, нарисовать круг и залить цветом. Получается круг создаётся и заливается, а прямоугольник получается прозрачным В чём причина что не так?
<?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>
<?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>