Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.10.2011, 21:36
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 1  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
По умолчанию зигзаг забивка текста

Есть 2 варианта стечения обстоятельств - либо 3 текстовых поля либо 43... как говорится. Важно другое алгоритм . Что нужно получить :
Код:
0   0     33                 1
  1            7
       15         18   20
Тоесть изначально все пусто. Приходят данные например 1:3 значит нужно отобразить 1 в 3 поле, затем 2:2 нужно отобразить 2ку во втором поле на клетку дальше чем предидущее и т.д. Когда все поля заполнены до предела первые значения полей удаляются , при приходе новых значений заполняются последние и т.д.

Что вы посоветуете , как лучше сделать в 3 поля или в 43 ? и какой алгоритм предпринять?
__________________
Марк Tween

Старый 15.10.2011, 22:22
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 2  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
чето нече не ясно

Старый 15.10.2011, 23:21
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 3  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
что именно не ясно? Ну я привел пример как выглядет текст в 3х идущих друг за другом полях. Тоесть каждое новое значение записывается в одно из 3х полей, причем на 1 символ больше чем в предидущем.
Если смотреть в коде то
Код AS3:
tf1.text = '1'
tf2.text = ' 55';
tf3.text = '  100';
.................... цикл прошел
tf1.text = '1   ';
tf2.text = ' 55  33';
tf2.text = ' 55  33 1';
tf3.text = '  100     11';
__________________
Марк Tween

Старый 15.10.2011, 23:39
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 4  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Если бы тут не было таких больших чисел, то я подумал бы, что это табулатура для балалайки.

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

В общем, я за 3 текстовых поля. Но всё равно странная задача.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 15.10.2011, 23:43
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 5  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Я бы вообще обошелся без текстовых полей, а рисовал в битмапе все символы.

Старый 16.10.2011, 00:05
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 6  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
в битмапе? ммм ? как это?

carrotoff

Тут еще дело омрачается тем, что цифры могут быть от 0 до 99, и поэтому непонятно когда поле закончилось и нужно стирать посл символ
__________________
Марк Tween

Старый 16.10.2011, 00:52
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 7  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Если я правильно понял задачу, я бы заюзал TextFormat.tabStops и разделял цифры табуляцией.

Старый 16.10.2011, 02:29
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 8  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
crazyone расскажите поподробнее!? ниразу не испольщовал этого свойства. как оно работает, точнее как его применить к моему вопросу?
__________________
Марк Tween

Старый 16.10.2011, 13:09
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 9  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Кушайте на здоровье:
Код AS3:
package com.ds.test{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.text.TextFormat;
 
	/**
	 * ...
	 * @author DoctorSTaL
	 */
	public class Main extends Sprite {
 
 
		public function Main():void {
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			// Переменные
			var tf1:TextField;
			var tf2:TextField;
			var tf3:TextField;
			var tfArr:Array;
			var tfrmt:TextFormat;
			var colWidth:Array = [40, 50];
			var lastTabstop:Number = 0;
			var tabStops:Array = [];
			var i:int;
 
			// Создаем поля
			tf1 = new TextField();
			tf2 = new TextField();
			tf3 = new TextField();
			tf1.autoSize = tf2.autoSize = tf3.autoSize = TextFieldAutoSize.LEFT;
			tfArr = [tf1, tf2, tf3];
 
			this.addChild(tf1).y = 40;
			this.addChild(tf2).y = 60;
			this.addChild(tf3).y = 80;
 
			tfrmt = new TextFormat();
 
			// Тут начинается магия
			function addText(tfInd:Number, text:String):void {
				// добавляем текст в нужное поле
				tfArr[tfInd].appendText(text);
 
				// увеличиваем размер отступа табуляции на нужную ширину
				// Note: она считается от начала текстового поля, 
				// а не от предыдущего отступа
				lastTabstop += colWidth[Math.min(colWidth.length, text.length) - 1];
				// добавляем его в TextFormat
				tabStops.push(lastTabstop);
				tfrmt.tabStops = tabStops;
 
				// всем полям добавляем табуляцию и применяем формат с актуальными отступами табуляции
				for (var j:int = 0; j < tfArr.length; j++) {
					tfArr[j].appendText("\t");
					tfArr[j].setTextFormat( tfrmt );
				}
			}
 
 
			// Finnaly, заполняем поля змейкой!
			i=20
			while (--i>0) {
				addText(int(Math.random() * 3), int(Math.random() * 99));
			}
		}
 
	}
 
}

Старый 16.10.2011, 13:24
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 10  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Цитата:
Я бы вообще обошелся без текстовых полей, а рисовал в битмапе все символы.
Одно текстовое поле. Назначаем ему текст, затем bitmapData.draw(tf);
Вот собственно и все.
__________________
http://www.chessmax.ru

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:06.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.