0

我需要一些帮助。

我有一个类文件,我已经导入它,如下图所示:

在此处输入图像描述

这个文件的代码是:

package 
{
    import flash.display.Sprite;
    import fl.motion.AdjustColor;
    import flash.filters.ColorMatrixFilter;
    import fl.events.SliderEvent;

    public class Main extends Sprite
    {
        private var color:AdjustColor = new AdjustColor();
        private var filter:ColorMatrixFilter;

        public function Main():void
        {
            /* Required to create initial Matrix */

            color.brightness = 0;
            color.contrast = 0;
            color.hue = 0;
            color.saturation = 0;

            /* Add Listeners function */

            addListeners();

        }

        private final function addListeners():void
        {
            colorPanel.brightSL.addEventListener(SliderEvent.CHANGE, adjustBrightness);
            colorPanel.contSL.addEventListener(SliderEvent.CHANGE, adjustContrast);
            colorPanel.hueSL.addEventListener(SliderEvent.CHANGE, adjustHue);
            colorPanel.satSL.addEventListener(SliderEvent.CHANGE, adjustSaturation);
        }

        private final function adjustBrightness(e:SliderEvent):void
        {
            color.brightness = e.target.value;
            update();
        }

        private final function adjustContrast(e:SliderEvent):void
        {
            color.contrast = e.target.value;
            update();
        }

        private final function adjustHue(e:SliderEvent):void
        {
            color.hue = e.target.value;
            update();
        }

        private final function adjustSaturation(e:SliderEvent):void
        {
            color.saturation = e.target.value;
            update();
        }

        private final function update():void
        {
            filter = new ColorMatrixFilter(color.CalculateFinalFlatArray());
            image.filters = [filter];
        }






    }
}

现在我想从时间轴导入这个文件。可能吗; 我从文档属性中删除类名并从时间线(frame1)导入它,例如:import Main

什么都没发生。

谢谢!

4

1 回答 1

0

我相信你正在做的事情的更好方法是这样的..

这是一个例子:http ://dopserv1.dop.com/ColorMatrixExample.swf

现在解释一下;在您的 FLA 中:

import Main;

var main:Main = new Main();
addChild(main);

您的 Main.as 课程将是:

package 
{
    import flash.display.Sprite;
    import fl.motion.AdjustColor;
    import flash.filters.ColorMatrixFilter;
    import fl.events.SliderEvent;
    import flash.events.Event;

    public class Main extends Sprite
    {
        private var color:AdjustColor = new AdjustColor();
        private var filter:ColorMatrixFilter;
        private var panel:ColorPanel;
        private var image:Image;

        public function Main():void
        {
            /* Required to create initial Matrix */
            color.brightness = 0;
            color.contrast = 0;
            color.hue = 0;
            color.saturation = 0;
            addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            panel = new ColorPanel();
            panel.x = 15;
            panel.y = 15;
            addChild(panel);

            image = new Image();
            image.x = 150;
            image.y = 150;
            addChild(image);

            panel.brightSL.addEventListener(SliderEvent.THUMB_DRAG, adjustBrightness);
            panel.contSL.addEventListener(SliderEvent.THUMB_DRAG, adjustContrast);
            panel.hueSL.addEventListener(SliderEvent.THUMB_DRAG, adjustHue);
            panel.satSL.addEventListener(SliderEvent.THUMB_DRAG, adjustSaturation);
        }

        private function adjustBrightness(e:SliderEvent):void
        {
            color.brightness = e.target.value;
            update();
        }

        private function adjustContrast(e:SliderEvent):void
        {
            color.contrast = e.target.value;
            update();
        }

        private function adjustHue(e:SliderEvent):void
        {
            color.hue = e.target.value;
            update();
        }

        private function adjustSaturation(e:SliderEvent):void
        {
            color.saturation = e.target.value;
            update();
        }

        private function update():void
        {
            filter = new ColorMatrixFilter(color.CalculateFinalFlatArray());
            image.filters = [filter];
        }
    }
}

现在在我的 FLA 库中,我只是导入了一个图像,用它制作了一个影片剪辑,并给它一个链接名称Image. 创建后将其从舞台中删除。

然后对于您的colorPanel,我将 4 个滑块放到舞台上,根据您班级中的名称命名它们,并从中创建一个实例名称为 的影片剪辑ColorPanel。创建后将其从舞台中删除。

另请注意:我将您的 SliderEvent.CHANGE 更改为 SliderEvent.THUMB_DRAG,因为我希望这更多的是您正在寻找的结果。

于 2012-10-31T19:29:38.980 回答