¿Cómo puedo crear una sombra paralela como efecto flotante alrededor de un componente de lienzo en flex?

StackOverflow https://stackoverflow.com/questions/242363

  •  04-07-2019
  •  | 
  •  

Pregunta

Quiero crear una sombra alrededor del componente del lienzo en flex. Técnicamente hablando, no será una sombra, ya que quiero que se ajuste al componente dando un aspecto flotante al componente. Es posible que pueda hacerlo con brillo, pero ¿puede alguien dejar caer una línea o dos que ya lo haya hecho?

Gracias de antemano.

¿Fue útil?

Solución

Realmente lo resolví haciendo esto:

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" 
        width="780" height="100%" borderStyle="solid" borderColor="gray"
            creationComplete="init();" backgroundColor="white">

  <mx:Script>
        <![CDATA[
            import mx.styles.StyleManager;


            private function init():void {
                var glow:GlowFilter = new GlowFilter();
                glow.color = StyleManager.getColorName("gray");
                glow.alpha = 0.8;
                glow.blurX = 4;
                glow.blurY = 4;
                glow.strength = 6;
                glow.quality = BitmapFilterQuality.HIGH;

                this.filters = [glow];
            }
        ]]>
    </mx:Script>



</mx:Canvas>

Otros consejos

Puedes usar DropShadowFilter pero parece ser más o menos lo mismo:

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" 
    width="780" height="100%" borderStyle="solid" borderColor="gray"
    creationComplete="init();" backgroundColor="white" dropShadowEnabled="true">
    <mx:filters>
        <mx:DropShadowFilter
            quality="1"
            color="gray"
            alpha="0.8"
            distance="0"
            blurX="4"
            blurY="4"
            strength="6"
        />
    </mx:filters>
</mx:Canvas>

En flex 4 estoy usando lo siguiente. Solo quería publicar esto porque la propiedad de los filtros debería verse como abajo en la imagen. (sí, sé que estoy usando un filtro de chispa en un objeto mx)

 <fx:Declarations>
    <s:GlowFilter
        id="glowBlack"
        alpha=".6"
        color="0x000000"
        inner="false"
        blurX="10"
        blurY="10"
        quality = "2"

        />

             <mx:Image id="rssIcon"
              height="70"
              filters="{[glowBlack]}"
              source="assets/rss/icon_rss.png"
              styleName="rssIconStyle"
              width="70"
              scaleContent="true"
              click="openRssSite(event)"
              "/>

Si desea definirlo fuera del lienzo, puede hacer esto:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
        width="780" height="100%">

   <mx:Canvas filters="[dropShadow]" width="200" height="200" backgroundColor="white"/>
   <mx:DropShadowFilter id="dropShadow" distance="0"/>

</mx:Application>

Es posible que puedas hacerlo con degrafa y el skinning. Sus documentos son limitados, pero puedes ver uno de los videos tutoriales sobre cómo crear máscaras. O mira su código de muestra. Simplemente asigne una máscara programática degrafa al borde de su lienzo y puede agregar todo tipo de degradados funky, caminos, formas, lo que sea.

Dependiendo de sus necesidades, podría salirse con la suya:

<mx:Canvas ... dropShadowEnabled="true" shadowDirection="right">

Hay advertencias ... descritas aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top