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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 04.07.2014, 19:11
razve вне форума Посмотреть профиль Отправить личное сообщение для razve Найти все сообщения от razve
  № 7  
Ответить с цитированием
razve
 
Аватар для razve

Регистрация: Jun 2014
Сообщений: 52
dark256, еще раз спасибо, вроде разобрался:
Код AS1/AS2:
var sourceText = "круг, круглый, __круг___кругляшок. округлый, (круг, овал овальный, полумесяц сфера, цилиндр цилиндрический, тор";
arr = new Array(['круг','овал','полумесяц'], ['сфера','цилиндр','тор']);
arrz = new Array(['квадрат','треугольник','прямоугольник'], ['пирамида','конус','параллепипед']);
var delimiters:Array = ",._ -+?(){}[]".split("");
var delHash:Object = new Object();
for (var i = 0; i<delimiters.length; i++) {
	delHash[delimiters[i]] = true;
}
function charIsDelimiter(char) {
	if (delHash[char] == true) {
		return false;
	} else {
		return true;
	}
}
function searchAndReplace() {
	trace("\n SOURCE STRING:"+sourceText);
	var idx;
	var pos = 0;
	for (i=0; i<=sourceText.length; i++) {
		for (j=0; j<=sourceText.length; j++) {
			do {
				idx = sourceText.indexOf(arr[i][j], pos);
				var r:Number = Math.floor(Math.random()*arrz[i].length);
				if (idx>=0) {
					pos = idx+arr[i][j].length;
					var leftChar = false;
					var rightChar = false;
					if (idx != 0) {
						leftChar = charIsDelimiter(sourceText.charAt(idx-1));
					}
					if (idx+arr[i][j].length != sourceText.length) {
						rightChar = charIsDelimiter(sourceText.charAt(idx+arr[i][j].length));
					}
					if (!leftChar && !rightChar) {
						sourceText = sourceText.substr(0, idx)+arrz[i][r]+sourceText.substr(idx+arr[i][j].length, sourceText.length);
					}
				}
			} while (idx != -1);
 
		}
	}
	trace("RESAULT STRING:"+sourceText);
}
searchAndReplace();
Добавлено через 64 часа 46 минут
Не получается( При перестановке в массиве, слово (например, "круг") не ищет.
Исходный массив:
Код AS1/AS2:
arr = new Array(['овал', 'круг' ,'полумесяц'], ['сфера','цилиндр','тор']);
Ни так:
Код AS1/AS2:
arr = new Array(['овал', 'круг' ,'полумесяц'], ['сфера','цилиндр','тор']);
Ни так:
Код AS1/AS2:
arr = new Array(['овал','полумесяц'], ['сфера','цилиндр','тор'],['круг']);

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

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

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


 


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


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