|
|
|||||
Вывод квадратов циклом построчно
Мне надо вывести динамическое количество квадратом статических длины и ширины на экран. Так как они могут не вмещаться в экран, их надо распределить по строкам. В каждой строке, например, по 3 квадрата.
Было бы просто, если бы можно было использовать двойной цикл, но в квадраты мне надо записывать число счетчика, переменной i. Я написал такой код, но не думаю, что он хорош, как его можно улучшить и какие решения лучше? В таком случае все получается правильно. Если элементов больше, они просто сходят на нижнюю строчку. Но я чувствую, что решение глупое.
__________________
Humanity.push(new Man()); |
|
|||||
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Как должны располагаться квадраты в итоге?
Здесь двойной цикл - легко прокатит. Можно ввести дополнительную переменную, которую увеличивать на 1 во втором цикле и записывать ее значение в этот квадрат вместо i п.с. Если постите вопрос на публичном форуме, не надо писать все переменные и разные операции в одну строку это затрудняет чтение. |
|
|||||
Что-то вообще не то)
Добавлено через 1 минуту goodguy, надо чтобы квадраты в виде клетки.
__________________
Humanity.push(new Man()); |
|
|||||
А что тут не то?
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
package { import flash.display.Sprite; public class Squares extends Sprite { public function Squares() { var increment:int = 0; for (var i:int = 0; i < 4; i++) { for (var j:int = 0; j < 5; j++) { var s:Square = new Square(increment); s.x = i * s.width; s.y = j * s.height; addChild(s); increment ++; } } } } } import flash.text.TextField; internal class Square extends flash.display.Sprite { public function Square(number:int) { graphics.beginFill(100000000 * Math.random(), 1); graphics.drawRect(0, 0, 100, 100); graphics.endFill(); var tf:TextField = new TextField(); tf.autoSize = "left"; tf.text = String(number); addChild(tf); } override public function get width():Number { return 100; } override public function get height():Number { return 100; } } |
|
|||||
Огромное спасибо, очень помогли!
__________________
Humanity.push(new Man()); |
|
|||||
Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
|
Brick.as
package { import flash.display.*; import flash.text.*; public class Brick extends Sprite { public var container:Sprite = new Sprite(); public var bg_brick:Sprite=new Sprite(); public function Brick(str:String) { addChild(container); draw_brick_1(str); } public function draw_brick_1(st:String):void { bg_brick.graphics.lineStyle(1,0xFF00FF); bg_brick.graphics.drawRect(0,0,15,15); container.addChild(bg_brick); var txt:TextField=new TextField(); bg_brick.addChild(txt); txt.width=15; txt.text =(String(st)); } } |
|
|||||
Какой треш!
for (var i:Number=1;i<ar.length;i++) for (var ii:Number=1;ii<ar.length;ii++) //Кол-во операций будет pow(ar.length , 2) ! Добавлено через 1 минуту Зачем тут вообще массив...?
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
Остался лишь один вопрос - если у меня количество квадратов динамическое, как я могу задать параметры для цикла?
__________________
Humanity.push(new Man()); |
Часовой пояс GMT +4, время: 23:04. |
|
« Предыдущая тема | Следующая тема » |
|
|