1

Flash AS3: フラッシュ AS3 で 2D 配列を使用しているときに、グリッド内のランダムな色のムービークリップのグループで近くにある類似の色のムービークリップに対するロール オーバー効果の条件を確認する方法を知る必要があります。または、
ロールが必要なだけです。私が書いたオーバーイベントは onBoxOver イベント関数です。私がターゲットにしているオブジェクトは、ロールオーバーまたはアルファ変更を取得するだけです。しかし、すべて近くにある同様の色のロールオーバーを作成する方法を知る必要があります。

    The code which i wrote is below for your reference.

フラッシュ AS3::

package 
{
    import flash.display.MovieClip;
        import flash.events.MouseEvent;

        public class playGame extends MovieClip
        {
            public static var totalRowBoxes:Number = 13;
            public static var totalColumnBoxes:Number = 12;
            public static var rowGap:Number = 30;
            public static var columnGap:Number = 30;
            public static var totalColorBoxes:Number = 8;
            public static var boxCollection:Array = new Array();
            public static var boxCollection1:Array = new Array();

            public function playGame(theGame:main)
            {
                // constructor code
                addBoxOnStage();
            }

            private function addBoxOnStage():void
            {
            var borderCont:Banner = new Banner();
                var scoreclipCont:scoreclip = new scoreclip();
                addChild(borderCont);
                addChild(scoreclipCont);
                scoreclipCont.x = 0;
                scoreclipCont.y = 0;
                createLevel(1);

                for (var i:Number = 0; i<totalRowBoxes; i++)
                {
                    boxCollection[i] = new Array(i);
                    for (var j:Number = 0; j<totalColumnBoxes; j++)
                    {
                        var squareCont:square = new square();
                        squareCont.x = 30 + (i * rowGap);
                        squareCont.y = 30 + (j * columnGap);
                        squareCont.name = i + "_" + j;
                        var boxCollection1:Array = new Array();
                        boxCollection1[0] = Math.round(Math.random() * 8);
                        boxCollection1[1] = squareCont;
                        var boxColour:Number = new Number();
                        boxColour = boxCollection1[0];
                        boxCollection[i][j] = boxCollection1[1];
                        addChild(squareCont);
                        squareCont.gotoAndStop(boxCollection1[0]);
                        squareCont.addEventListener(MouseEvent.MOUSE_OVER, onBoxOver);                       squareCont.addEventListener(MouseEvent.MOUSE_OUT, onBoxOut);
                               squareCont.addEventListener(MouseEvent.CLICK, onBoxClick);
                        }
                }
                }

            private function onBoxClick(eve:MouseEvent):void
            {

            }

            private function onBoxOver(eve:MouseEvent):void
            {
                for (var i:Number=0; i< totalRowBoxes; i++)
                {
                    for (var j:Number=0; j<totalColumnBoxes; j++)
                    {
                        eve.target.alpha = 0.3;
                        // trace(boxCollection[i][j].currentFrame)
                        trace(eve.target);
                    }

        }
            }

            private function onBoxOut(eve:MouseEvent):void
            {
                eve.target.alpha = 1;
            }

            private function createLevel(lvl):void
            {

            }


        }
       }


   ![My Game screenshot here colourbox][1]

    Thanks in Advance. Greatly Appreciable for the reply.

こんにちは、これは私のプロジェクトの画像またはスクリーンショットです。その画像には、ランダムに配置された 8 つの色があります。任意のボックスでマウスの位置またはロールオーバーを行うたびに、条件は、ロールオーバーを作成しているボックス (上、下、左、右) の周りに同じ色が発生するかどうかを確認する必要があります。1.カーソルを指しているボックスの上部に同じ色が発生した場合、上部のボックスと指しているボックスの両方のアルファが少なくなり、そうでない場合は、ポインティングボックスのみのアルファが少なくなります。これが私のコンセプトフレンズです。画像を確認して、疑問がある場合はお知らせください。

4

1 に答える 1

1

「近くに」という言葉が何を意味するのか、私にはまだよくわかりません。(隣のタイル? 似たような色の隣接?...) 「近く」が隣接を意味する場合は、フラッド フィル アルゴリズムについて読む必要があります。これに関する優れたウィキ記事があります。これを使用して、必要な効果をトリガーするのに十分類似したタイルのリストをクロールします。

また、プロジェクトで「似た」色が何を意味するのかわかりません。2 つの色が似ている天気を判断する方法が必要になります。似たような色の検出に関するスタックオーバーフローの質問があります。あなたの研究を始めるのに良い答えがあります。ここを見て。

于 2012-06-05T13:46:47.240 に答える