Как я могу создать тень, похожую на плавающий эффект, вокруг гибкого компонента холста?

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

  •  04-07-2019
  •  | 
  •  

Вопрос

Я хочу создать тень вокруг гибкого компонента холста.Технически говоря, это не будет тень, так как я хочу, чтобы она обволакивала компонент, придавая ему плавающий вид.Возможно, я смогу сделать это с помощью свечения, но может ли кто-нибудь написать пару строк, кто уже это сделал?

Заранее спасибо.

Это было полезно?

Решение

Я действительно решил это следующим образом:

<?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>

Другие советы

Вы можете использовать DropShadowFilter , но похоже, что это более или менее одно и то же:

<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>

В flex 4 я использую следующее.Я просто хотел опубликовать это, потому что свойство фильтров должно выглядеть так, как показано ниже на изображении.(да, я знаю, что использую искровой фильтр на объекте 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)"
              "/>

Если вы хотите определить его вне холста, вы можете сделать это:

<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>

Вы можете сделать это с помощью degrafa и скинов. Их документы ограничены, но вы можете посмотреть одно из обучающих видео о том, как создавать скины. Или посмотрите на их пример кода. Просто назначьте программный скин degrafa на границе вашего холста, и вы можете добавлять всевозможные прикольные градиенты, контуры, фигуры, что угодно.

В зависимости от ваших потребностей вы можете сойти с рук:

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

Есть предостережения .. изложенные здесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top