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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.06.2009, 08:58
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 1  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
По умолчанию Разбить слово на буквы

Допустим, пишем ‘123’ и разбиваться число должно как
Цитата:
1
2
3
Код AS1/AS2:
var btn:MovieClip = this.createEmptyMovieClip("btn", 3);
btn.beginFill(0xFF0000);
btn.moveTo(10,10);
btn.lineTo(100,10);
btn.lineTo(100,30);
btn.lineTo(0,30);
btn.lineTo(0,10);
btn.endFill();
btn._y = 35;
btn._x = 20;
var pole_txt:TextField = btn.createTextField("pole_txt", 4, 0, 5, 0, 0);
pole_txt.autoSize = true;
pole_txt.text = 'кнопка';
btn.onPress = substr_f;
///////////////////
 
var txt:TextField = this.createTextField("my_txt", 998, 20, 20, 100, 20);
txt.type = "input";
txt.border = true;
function substr_f() {
	txt_len = txt.length;
	for (var i:Number = 0; i<txt_len; i++) {
		var mySubstring:String = my_txt.text.substr(i);
		trace(mySubstring);
	}
}
У меня получается неправильно
Цитата:
123
23
3

Старый 24.06.2009, 09:15
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
А типа split() с данной задачей не справится?
Код:
function substr_f() {
	var sp_arr:Array = my_txt.text.split("");
	trace(sp_arr);
}

Старый 24.06.2009, 17:35
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 3  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Цитата:
Сообщение от alexcon314 Посмотреть сообщение
А типа split() с данной задачей не справится?
Действительно..и в хелпе информации достаточно..что-то не сообразил сразу.
Спасибо всем за внимание.

Старый 24.06.2009, 09:15
Juice_Green вне форума Посмотреть профиль Отправить личное сообщение для Juice_Green Посетить домашнюю страницу Juice_Green Найти все сообщения от Juice_Green
  № 4  
Ответить с цитированием
Juice_Green
 
Аватар для Juice_Green

Регистрация: Dec 2005
Адрес: Новосибирск
Сообщений: 529
Отправить сообщение для Juice_Green с помощью ICQ Отправить сообщение для Juice_Green с помощью Skype™
может так попробывать?
Код AS1/AS2:
var num:Number=123;
var num_arr:Array=num.toString().split('');
for(var i:Number=0;i<num_arr.length;i++){
	trace(num_arr[i]);
}

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

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
Зачем вам substr - Возвращает подстроку из символов, начинающихся с заданного элемента startIndex. Длина этой строки определяется параметром len.

Просто my_txt.text(i)
__________________
2+2=5

Старый 24.06.2009, 11:35
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 6  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
сам на днях делал точно такое же, проблем почему то не возникло(
Код AS1/AS2:
//////////////-------------- Функция заполнения --------------//////////////
function fillClip(hmc:MovieClip, str:String):Void
{
	var strArr:Array = str.split('');
	var total:Number = strArr.length;
	var offset:Number = 0;
 
	for(var i:Number = 0; i < total; i++)
	{
		var mc:MovieClip = hmc.createEmptyMovieClip('mc' + i, hmc.getNextHighestDepth());
 
		var mcFTM:TextFormat = new TextFormat();
			mcFTM.size = 16;
			mcFTM.bold = true;
			mcFTM.color = 0x999999;
			mcFTM.font = "Trebuchet";           // это линкеджй встроенного шрифта
 
		var mcTF:TextField = mc.createTextField('mcTF', 0, 0, 0, 10, 10);
			mcTF.selectable = false;
			mcTF.text = strArr[i];
			mcTF.autoSize = true; 
			mcTF.embedFonts = true;             // внимание, юзаю встроенный шрифт!
			mcTF.setTextFormat(mcFTM);
 
			mc._x = offset;
		offset += (mc._width + 2);
 
	}
}
var str:String = 'I know, what you were doing last summer...';
var hmc:MovieClip = this.createEmptyMovieClip('hmc', 0);
fillClip(hmc, str);
	hmc._x = (Stage.width - hmc._width) / 2;
	hmc._y = (Stage.height - hmc._height) / 2;

Старый 24.06.2009, 11:54
MyChemic вне форума Посмотреть профиль Отправить личное сообщение для MyChemic Найти все сообщения от MyChemic
  № 7  
Ответить с цитированием
MyChemic

Регистрация: Jan 2007
Сообщений: 91
Код AS3:
for (i=...)
trace(my_txt.substring(i,1));

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

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
... извиняюсь, ерунду написал, метод с масисвов более быстр:
Код AS1/AS2:
function sliceStr(str:String):Void
{
	var strLength:Number = str.length;
	for (var i:Number = 0; i < strLength; i++)
	{
		var curLetter:String = str.slice(i, (i + 1));
	}
}
function subStr(str:String):Void
{
	var strLength:Number = str.length;
	for (var i:Number = 0; i < strLength; i++)
	{
		var curLetter:String = str.substring(i, (i + 1));
	}
}
function splitStr(str:String):Void
{
	var strArr:Array = str.split('');
	var strLength:Number = strArr.length;
	for (var i:Number = 0; i < strLength; i++)
	{
		var curLetter:String = strArr[i];
	}
}
 
var count:Number = 1000;
t = getTimer();
for(var i:Number = 0; i < count; i++)
{
	sliceStr('I know, what you were doing last summer...');
}
trace(getTimer() - t);
t = getTimer();  // 185
for(var i:Number = 0; i < count; i++)
{
	subStr('I know, what you were doing last summer...');
}
trace(getTimer() - t);  // 189
t = getTimer();
for(var i:Number = 0; i < count; i++)
{
	splitStr('I know, what you were doing last summer...');
}
trace(getTimer() - t);  // 76


Последний раз редактировалось nOobCrafter; 25.06.2009 в 13:38.
Создать новую тему Ответ Часовой пояс GMT +4, время: 18:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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