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

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

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

Регистрация: Jan 2012
Сообщений: 836
По умолчанию Эффект печатающего текста

Кто может дать пример? Как тут
http://edapskov.ru/pages.php?id=13 только на as3, буду очень благодарен)

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Godwarlock, этот код будет работать в AS3.
__________________
There is no thing in this world that is not simple.

Старый 27.05.2014, 16:03
FlasherEgor вне форума Посмотреть профиль Отправить личное сообщение для FlasherEgor Найти все сообщения от FlasherEgor
  № 3  
Ответить с цитированием
FlasherEgor

Регистрация: Nov 2013
Сообщений: 86
Почитайте комментарии, там дан.

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

Регистрация: Jan 2012
Сообщений: 836
Сделал как в том примере
Код AS3:
private function text_function():void
	{
    var intervalID:int = setInterval(text_function, interval);
	var count:int = 0;
	 var interval:int = 100;
	var str:String = 'Ловкий сокол - не праведник и не святоша. Мечут в сердце греховные стрелы ресницы!';
	if (count<=str.length) {
 
		text_dialog.txt_dialog.text = str.substr(0, count);
 
		text_dialog.txt_dialog.text += str.substr(count, 1)+'|';
 
		count++;
 
	} else {
 
		clearInterval(intervalID);
 
		text_dialog.txt_dialog.text = str.substr(0, count);
 
	}
}
}
}
Сразу создается буква Л с прямым слешем и флешка зависает на этом без ошибок

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Попробуйте вынести count за функцию. Убрать clearInterval и поменять setInterval на setTimeout.
И interval вынести за пределы функции тоже.
__________________
There is no thing in this world that is not simple.

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
На держи мое страье, даже приводить к норм не буду, но работать будет как часы

Код AS3:
package com.in4core.text 
{
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.TimerEvent;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import flash.utils.clearInterval;
	import flash.utils.setInterval;
	import flash.utils.Timer;
	/**
	 * ...
	 * @author in4core
	 */
	public class Decoder extends EventDispatcher
	{
		private var _speed:uint;
		private var _str:String;
		private var _textfield:TextField;
		private var _rand:uint;
		private var _count:uint = 0;
		private var _index:uint = 1;
		private var _length:uint;
 
		private var _appendtext:String = '';
		private var _currentFormat:TextFormat = null;
		private var _fullFormat:TextFormat = null;
		private var _currentColor:int = -1;
		private var _tmp:TextField = new TextField();
 
		private var _interval:Timer = new Timer(20);
 
		public static const DEC_END:String = 'dec_end';
 
		public function open(text:String , tf:TextField , speed:uint = 20 , rand:uint = 0 , isStart:Boolean = false):void
		{
			_speed = speed;
 
			_textfield = tf;
 
			_str = text;
 
			_rand = rand;
 
			_length = _str.length;
 
			if (isStart) start();
		}
 
		public function start():void {
 
			_interval.reset();
 
			_textfield.text = '';
 
			addLetter();
 
			_interval.addEventListener(TimerEvent.TIMER , addLetter);
			_interval.start();
		}
 
		public function stop():void {
 
			_textfield.text = _appendtext;
 
			_interval.reset();
 
			_count = 0;
			_index = 1;
		}
 
		private function addLetter(e:TimerEvent = null):void {
 
			var a:String = String.fromCharCode(Math.floor(Math.random() * 93 + 33)).toLowerCase(); // Latin and punctuation
			//var b:String = String.fromCharCode(Math.floor(Math.random() * 63 + 1040)).toLowerCase(); // cyrillic
			//var c:String = String.fromCharCode(Math.floor(Math.random() * 31 + 33)).toLowerCase(); // punctuation
 
			var tempStr:String = a;
 
			if (_count < _rand) _count ++ ;
 
			else 
			{
				_count = 1;
				_appendtext = _str.slice(0, _index);
				_index ++;
			}
 
			if ( _rand ) 
			{
				_textfield.text = _appendtext + tempStr;
			}
 
			else _textfield.text =  _appendtext;
 
 
			if (_index == _length + 1) 
			{
				stop();
				this.dispatchEvent(new Event(Decoder.DEC_END) );
				destroy();
			}
		}
 
		public function destroy():void
		{
			_interval.removeEventListener(TimerEvent.TIMER , addLetter);
		}
	}
}
__________________
Марк Tween

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

Регистрация: Jan 2012
Сообщений: 836
Цитата:
Сообщение от SuriTheAngel Посмотреть сообщение
Попробуйте вынести count за функцию. Убрать clearInterval и поменять setInterval на setTimeout.
И interval вынести за пределы функции тоже.
Спасибо большое. Все заработало

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

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

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


 


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


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