Как создать такой вид сетки, как показано ниже, в Actionscript 3? - PullRequest
0 голосов
/ 21 декабря 2010

alt text

Каждое поле представляет собой метку с возможностью нажатия, которая переключает цвет при нажатии.

Общее количество меток является динамическим.

Как создать такой вид сетки с чистым actioncript 3?

Ответы [ 2 ]

0 голосов
/ 21 декабря 2010

Предположим, что у каждого бокса есть свой класс, для того чтобы создать свой вид, вам понадобятся несколько параметров, таких как:

  • количество столбцов
  • по горизонтали и вертикализаполнение между каждой меткой.

Если ваши метки хранятся в векторе или массиве, вы затем выполните итерацию по всем, что содержит ваши метки, чтобы разместить их на сцене.

Идея здесь заключается в том, чтобы оставаться максимально гибкой, поэтому независимо от того, какую функцию вы используете для размещения меток, рекомендуется сохранить параметры, упомянутые выше, в качестве переменных.

Типичное использование:

     private function createGrid
          ( numColumns:int , hPadding:int , vPadding:int ):void
     {
        var xPos:int;
        var yPos:int; 

        for( var i:int ; i < labels.length ; ++i )
        {
             var label:YourLabel = labels[i];

             if( i % numColumns == 0 && i > 0 )
             {
                 //reset the x position & increment the y position 
                 //in order to move to the next line
                 xPos = 0;
                 yPos += vPadding;

             }else if( i > 0) {

                xPos += hPadding; //increment the x position
             }

             label.x = xPos;
             label.y = yPos;

             addChild( label );
         }
     }

Конечно, вы можете изменить это многими способами, скажем, что вы хотите учесть размеры меток или создать некоторую анимацию для размещения меток на сцене, вы бы по-другому справились с этой функцией ...

0 голосов
/ 21 декабря 2010

на вашем месте я создал бы класс Box, расширяющий Sprite, а затем контейнер для управления координатами:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...