首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS 3从时间线导入类文件,而不是文档属性

AS 3从时间线导入类文件,而不是文档属性
EN

Stack Overflow用户
提问于 2012-11-01 03:00:32
回答 1查看 128关注 0票数 0

我需要一些帮助。

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

这个文件的代码是:

代码语言:javascript
复制
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];
        }






    }
}

现在我想从时间线导入这个文件。是否可以;I我从文档属性中删除类名,然后从时间线(frame1)中导入它,如: import Main

什么都没发生。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-11-01 03:29:39

对于我认为你正在做的事情,更好的方法应该是这样的。

下面是一个示例:http://dopserv1.dop.com/ColorMatrixExample.swf

现在来解释一下;在你的FLA中:

代码语言:javascript
复制
import Main;

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

而你的Main.as类将是:

代码语言:javascript
复制
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,正如我所期望的那样,这更符合您的要求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13165793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档