![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2010
Сообщений: 99
|
хая!
![]() расскажите как сделать! есть три динамических поля, в которых вечно меняются цИфры. и нужно чтоб эти поля выстраивались от самого высокого числа к самому малому. тоесть постоянно поля меняются местами и на первом месте оказывается поле с наибольшим числом на данный момент Последний раз редактировалось iNils; 03.09.2010 в 02:09. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Подписываете сортировщик на событие изменения каждого поля, и по наступлению события (то есть когда в каком-либо поле изменится содержимое) пробегаете в цикле по массиву полей и пересортировываете, одновременно меняя у.
package { import flash.display.Sprite; import flash.events.Event; import flash.text.TextField; import flash.text.TextFormat; public class Main extends Sprite { private var _fields:Array; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(event:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); _fields = new Array(); for (var i:uint = 0; i < 5; i++) { var txf:TextField = new TextField(); txf.width = 200; txf.height = 24; txf.type = "input"; txf.defaultTextFormat = new TextFormat("Arial", 20, 0x666666); txf.border = true; txf.text = i.toString(); txf.addEventListener(Event.CHANGE, onChange); txf.x = 50; txf.y = 50 + 30 * i; addChild(txf); _fields[i] = txf; } } private function onChange(event:Event):void { for (var i:uint = 1; i < _fields.length; i ++) { var currentValue:Number = Number(_fields[i].text); var prevValue:Number = Number(_fields[i - 1].text); if (prevValue < currentValue) { _fields[i].y -= 30; _fields[i - 1].y += 30; var tempTXF:TextField = _fields[i - 1]; _fields[i - 1] = _fields[i]; _fields[i] = tempTXF; i = Math.max(0, i - 2); } } } } }
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 99
|
спасибо большое!!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|