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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.09.2011, 19:11
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 11  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
ну, первое что приходит в голову, задать заранее номера индексов, для которых нужно создать текст другого цвета, и когда цикл доходит до них, просто задает текстфилду другой цвет. Хз, на сколько этот вариант хорош, но пока ничего другого в голову не идет

Старый 25.09.2011, 13:21
Isaac вне форума Посмотреть профиль Отправить личное сообщение для Isaac Найти все сообщения от Isaac
  № 12  
Ответить с цитированием
Isaac

Регистрация: Aug 2011
Сообщений: 100
Цитата:
Сообщение от goodguy Посмотреть сообщение
А что там изощряться-то? Задача на десять минут. Один цикл решит всю проблему.
Сначала бьем строку на массив, потом пробегаемся по нему, создаем для каждой буквы текстфилд с нужными настройками, и сразу же добавляем твин с временем, зависящим от текущей итерации.
Да, но в массиве ведь у меня все равно строки или я что-то не так понимаю?
Ведь мне нужно применять альфа для каждой буквы по-отдельности, а не для вссего массива.
нужно поочередно выводить каждую букву с альфа 0 до альфа 1

Старый 25.09.2011, 13:25
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 13  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Чтобы превратить строку в массив отдельных символов, достаточно вызывать у нее метод split();
Код AS3:
var arrayOfChars:Array = string.split(",");

Старый 25.09.2011, 13:35
Isaac вне форума Посмотреть профиль Отправить личное сообщение для Isaac Найти все сообщения от Isaac
  № 14  
Ответить с цитированием
Isaac

Регистрация: Aug 2011
Сообщений: 100
Цитата:
Сообщение от goodguy Посмотреть сообщение
Чтобы превратить строку в массив отдельных символов, достаточно вызывать у нее метод split();
Код AS3:
var arrayOfChars:Array = string.split(",");
Это я знаю
Вот я сделал
Код AS3:
private var message1:String = "54321 BOOM!!!";			
 
private var textArray:Array = message1.split(" ");
private function addText():void
		{
			txtFrt = new TextFormat();
			txtFrt.font = "Arial";
			txtFrt.bold = true;
			txtFrt.size = 20;
 
			txt1 = new TextField();
			txt1.x = 200;
			txt1.y = 50;
			txt1.width = 300;			
			txt1.alpha = 1;
			txt1.text = message1;			
			txt1.setTextFormat(txtFrt);			
			//addChild(txt1);				
 
			for(var i:int = 0; i < textArray.length; i ++)
			{
				trace(textArray[i].charAt(i))
			}			
 
		}
Вы так имели в виду?

Старый 25.09.2011, 17:12
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 15  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Нет, я имел в виду другое.

Код AS3:
package  {
	import caurina.transitions.Tweener;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	/**
	 * ...
	 * @author goodguy
	 */
	public class TextAdder extends Sprite {
 
		private var _stringToShow:		String 	= "Эта строка будет разбита и показана побуквенно";
		private var _stringContainer:	Sprite 	= new Sprite();
 
		public function TextAdder() {
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
			addChild(_stringContainer);
 
			var lettersArray:	Array 	= _stringToShow.split("");
			var arrayLength:	int		= lettersArray.length;
			for (var i:int = 0; i < arrayLength; i++) {
				var tf:TextField	= new TextField();
				tf.autoSize			= TextFieldAutoSize.LEFT;
				tf.text				= lettersArray[i];
				tf.alpha			= 0;
				_stringContainer.addChild(tf);
				if (i > 0) {
					var previousTf:TextField = TextField(_stringContainer.getChildAt(i - 1));
					tf.x	= previousTf.x + previousTf.textWidth;
				}
				Tweener.addTween(tf, { time: 1 + i / 10,  transition: "easeInExpo", alpha: 1 } );
			}
		}
	}
}
П.с. здесь используется Caurina Tweener, но это не принципиально

Строка появляется побуквенно. Примитивный вариант


Последний раз редактировалось goodguy; 25.09.2011 в 17:27.
Старый 25.09.2011, 17:36
Isaac вне форума Посмотреть профиль Отправить личное сообщение для Isaac Найти все сообщения от Isaac
  № 16  
Ответить с цитированием
Isaac

Регистрация: Aug 2011
Сообщений: 100
Цитата:
Сообщение от goodguy Посмотреть сообщение
Нет, я имел в виду другое.

Код AS3:
package  {
	import caurina.transitions.Tweener;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	/**
	 * ...
	 * @author goodguy
	 */
	public class TextAdder extends Sprite {
 
		private var _stringToShow:		String 	= "Эта строка будет разбита и показана побуквенно";
		private var _stringContainer:	Sprite 	= new Sprite();
 
		public function TextAdder() {
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
			addChild(_stringContainer);
 
			var lettersArray:	Array 	= _stringToShow.split("");
			var arrayLength:	int		= lettersArray.length;
			for (var i:int = 0; i < arrayLength; i++) {
				var tf:TextField	= new TextField();
				tf.autoSize			= TextFieldAutoSize.LEFT;
				tf.text				= lettersArray[i];
				tf.alpha			= 0;
				_stringContainer.addChild(tf);
				if (i > 0) {
					var previousTf:TextField = TextField(_stringContainer.getChildAt(i - 1));
					tf.x	= previousTf.x + previousTf.textWidth;
				}
				Tweener.addTween(tf, { time: 1 + i / 10,  transition: "easeInExpo", alpha: 1 } );
			}
		}
	}
}
П.с. здесь используется Caurina Tweener, но это не принципиально

Строка появляется побуквенно. Примитивный вариант
Спасибо

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

Теги
alpha , textfield , tweenMax
Опции темы
Опции просмотра

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

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


 


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


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