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];
        }






    }
}

このファイルをタイムラインからインポートしたいと思います。出来ますか; ドキュメント プロパティからクラス名を削除し、次のようにタイムライン (フレーム 1) からインポートします。

何も起こりません。

ありがとう!

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。作成したら、ステージから削除します。

次に、colorPanel4 つのスライダーをステージにドラッグし、クラスの名前に従って名前を付け、インスタンス名が のムービー クリップを 1 つ作成しますColorPanel。作成したら、ステージから削除します。

また、注意してください: SliderEvent.CHANGE を SliderEvent.THUMB_DRAG に変更しました。これは、あなたが探している結果の多くであると予想されるためです。

于 2012-10-31T19:29:38.980 に答える