1

Flash AS3:我只需要知道如何检查类似颜色动画剪辑的翻转效果条件,这些动画剪辑在网格中的一组随机颜色动画剪辑中附近,而它在 Flash AS3 中使用 2D 数组。或者
我只需要滚动我写的 over 事件是 onBoxOver 事件函数,因为我的目标对象只是得到翻转或得到 alpha 变化。但我需要知道如何为附近的相似颜色进行翻转。

    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.如果相同的颜色出现在我指向光标的框的顶部,顶框和我指向的框都应该得到更少的alpha,否则只有指向框应该得到更少的alpha。这是我的概念朋友。如果您有任何疑问,请查看图片并告诉我。

4

1 回答 1

1

我仍然不确定您所说的“附近”是什么意思。(相邻的瓷砖?颜色相似的相邻?...)如果“附近”表示相邻,您需要阅读有关洪水填充算法的信息。有一篇关于此的很好的 wiki 文章。您将使用它来爬取足够相似的图块列表以触发您想要的效果。

我也不知道您项目中的“相似”颜色是什么意思。您将需要一种方法来确定两种颜色是否相似。有一个stackoverflow问题:相似颜色检测。它有一个很好的答案,可以让您开始研究。看这里。

于 2012-06-05T13:46:47.240 回答