Я в основном придерживаюсь концепции Даниэля (за исключением того, что у меня есть некоторые глубоко укоренившиеся, необъяснимые, презрение к деграфе), вы должны быть в состоянии сделать это:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955"
minHeight="600"
creationComplete="application1_creationCompleteHandler(event)">
<s:layout>
<s:VerticalLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.core.UIComponent;
import mx.events.FlexEvent;
import spark.components.Group;
public var someGraphics:UIComponent;
[Bindable]
public var bd:BitmapData;
[Bindable]
public var finalBD:BitmapData;
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth,unscaledHeight);
if(someGraphics)
{
someGraphics.graphics.beginFill(0xFF0000);
someGraphics.graphics.drawEllipse(0,0,100,20);
someGraphics.graphics.endFill();
bd.draw(someGraphics);
finalBD.copyPixels(bd,new Rectangle(0,0,bd.width*.5,bd.height),new Point());
}
}
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
someGraphics = new UIComponent();
bd = new BitmapData(100,100);
finalBD = new BitmapData(100,100);
invalidateDisplayList();
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:BitmapImage source="{bd}" width="100" height="100"/>
<s:BitmapImage source="{finalBD}" width="100" height="100"/>
</s:Application>
Это, очевидно, далеко от довольнорешение, но просто сделать графику в некотором объекте, который имеет графическое свойство, затем использовать метод рисования BitmapData, чтобы получить пиксели в растровые данные, а затем скопировать часть этих пикселей в другое BitmapData для отображения, это, вероятно, больше памяти, но меньшеПроцессор интенсивнее, чем у Джереми.Кроме того, я использую UIComponent, требование к методу draw заключается в том, чтобы класс реализовывал IBitmapDrawable, поэтому, какова бы ни была самая легкая реализация из этого, вероятно, вы хотите использовать, UIComponent является предположением.