He estado probando flex y creo que es un buen producto, sin embargo me he encontrado con un problema. Cuando hago un dibujo vectorial, por ejemplo una línea o un círculo, si el dibujo es muy grande o le hago un zoom, se sale del contenedor y se dibuja arriba de otros controles. He estado buscando en la red pero no he encontrado información sobre este problema, lo que me lleva a pensar que estoy haciendo algo mal. He aqui un ejemplo:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns="*"
xmlns:gr="pru.gr.*"
layout="absolute" creationComplete="initApp()">
<mx:Script>
<![CDATA[
import pru.gr.*;
public var fig:SSprite = new SSprite();;
public function initApp():void {
myCanvas.init();
myCanvas.addChild(fig);
}
]]>
</mx:Script>
<mx:HDividedBox x="10" y="10" width="678" height="427">
<mx:Panel width="193" height="426" layout="absolute">
<mx:Button x="19" y="21" label="Button" width="144"/>
</mx:Panel>
<gr:SCanvas width="200" height="426" id="myCanvas">
</gr:SCanvas>
</mx:HDividedBox>
</mx:Application>
************************************************** **
package pru.gr
{
import mx.core.UIComponent;
import flash.text.*;
import flash.geom.Matrix;
public class SCanvas extends UIComponent
{
public function SCanvas()
{
super();
}
public function init():void {
drawBounds();
}
public function drawBounds():void {
this.graphics.clear();
this.graphics.lineStyle(1.0, 0x000000, 1.0);
this.graphics.beginFill(0x808080, 1.0);
this.graphics.drawRect(0, 0, this.width, this.height);
this.graphics.endFill();
}
}
}
************************************************** **
package pru.gr
{
import flash.display.Sprite;
public class SSprite extends Sprite
{
public function SSprite()
{
super();
this.graphics.lineStyle(1.0, 0x000000, 1.0);
this.graphics.moveTo(-100, 50); // aquí hago la línea
this.graphics.lineTo(100, 100);
}
}
}
************************************************** **
La figura que dibujo, es una simple línea que se dibuja en un Sprite (fig) y luego se agrega a myCanvas (derivado de UIComponent).
Al lado izquierdo hay un panel con un botón y al lado derecho "myCanvas". La línea se dibuja sobre el botón y el panel. Se sale del sprite y se sale de myCanvas.
Si alguien me puede ayudar, se lo agradesco de antemano.
Saludos a todos.