4

我想在 flex 中的画布组件周围创建一个阴影。从技术上讲,它不会是阴影,因为我希望它环绕组件,使组件具有浮动外观。我也许可以用发光来做到这一点,但任何人都可以放弃一两行已经做过的人吗?

提前致谢。

4

6 回答 6

3

我实际上通过这样做解决了它:

<?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>
于 2008-10-28T06:14:04.313 回答
2

您可以使用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>
于 2008-10-28T06:25:34.523 回答
2

在 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)"
              "/>
于 2010-11-30T21:07:00.370 回答
0

如果你想在画布之外定义它,你可以这样做:

<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>
于 2008-10-30T20:22:32.150 回答
0

你也许可以用degrafa和 skinning 来做到这一点。他们的文档有限,但您可以观看其中一个关于如何创建皮肤的教程视频。或者看看他们的示例代码。只需将 degrafa 编程皮肤分配给画布的边框,您就可以添加各种时髦的渐变、路径、形状等等。

于 2008-11-06T01:06:14.427 回答
0

根据您的需要,您可能能够摆脱:

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

有一些警告..这里概述

于 2012-01-09T05:53:56.500 回答