Los niños de Flex DividedBox se muestran afuera

Estoy usando un DividedBox en Flex que al principio solo contiene una cuadrícula de datos. Cuando hago clic en un elemento en el Datagrid, se agrega un segundo elemento con un ancho de 0% (Grupo de chispas) al cuadro dividido para mostrar una imagen.

La cosa es que, cuando el segundo elemento se agrega a DividedBox, la imagen se muestra parcialmente fuera de DividedBox, y no quiero tener este comportamiento.

Aquí está el código interesante:


    
        <!--datagrid-->
    

Y aquí está la pieza de código que agrega el segundo hijo de splitBox (código simplificado):

private var _pdf_preview:Group = new Group();
[Bindable]
[Embed(source="assets/image/llama.jpg")]
private var imgClass:Class;

protected function itemOnClickHandler(event:MouseEvent):void
{
    _pdf_preview = new Group();
    var img:Image = new Image();
    img.source = imgClass;
    _pdf_preview.addElement(img);
    _pdf_preview.percentWidth = 0;
    divider.addElement(_pdf_preview);
}

Y aquí hay una pantalla del problema (Por cierto, no note mis habilidades en Gimp :)). Como nuevo usuario, no puedo vincular imágenes a mi publicación: pantalla que muestra mi problema el Borde rojo muestran los límites de la dividida.

Gracias. Espero que no haya demasiadas fallas, el inglés no es mi idioma nativo. Lo siento por cualquier error en inglés.

PD: No pude agregar las etiquetas "DividedBox" porque no existían antes, y soy un "nuevo usuario", así que no puedo crear nuevas etiquetas.

1

1 Respuestas

Puede usar la propiedad clipContent para cortar la imagen en el borde de DividedBox:


Cuando utilice contenedores Spark, clipAndEnableScrolling es la propiedad que necesita para lograr el mismo objetivo.

También me gustaría señalar que normalmente no es necesario agregar componentes de forma dinámica a través de ActionScript. Puedes usar 'estados' en su lugar. Por ejemplo:


    
    



    
    

Ahora todo lo que necesita hacer para mostrar la imagen, es configurar currentState a image .

1
agregado
@pataprout Yo compartí tu preocupación una vez, pero ya no lo hago. Hacerlo en AS, es hacerte la vida difícil. MXML realmente hace algunas cosas mucho más fáciles. Solo tiene que aprender a separar bien las declaraciones de vista MXML del código de comportamiento de ActionScript.
agregado el autor RIAstar, fuente
@pataprout Estoy totalmente de acuerdo. Casi nunca engancho a oyentes de eventos en MXML, ya que nos adentramos en el ámbito del código de comportamiento. Creo que deberías investigar el mecanismo de despellejamiento de la chispa. O puede leer esta respuesta que escribí recientemente, lo que demuestra lo que quiero decir.
agregado el autor RIAstar, fuente
Gracias, la propiedad clipContent hizo el trabajo! En cuanto al hecho de que puedo hacer eso en mxml. Tal vez lo estoy haciendo mal, pero no soy un gran fan de la parte mxml de Flex, prefiero hacer la mayoría de las cosas en ActionScript.
agregado el autor Alex Ception, fuente
A veces hace el trabajo, a veces no. Especialmente, tengo muchos problemas con el evento cuando están configurados en mxml, pero no tengo ningún problema en agregar un Oyente cuando esté en AS completo. Estoy seguro de que los problemas con los que estoy lidiando están totalmente en mi mala interpretación de mxml, pero no puedo encontrar información sobre cómo administrarlo en MXML.
agregado el autor Alex Ception, fuente