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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.11.2008, 20:34
Czar вне форума Посмотреть профиль Отправить личное сообщение для Czar Найти все сообщения от Czar
  № 1  
Ответить с цитированием
Czar
[+4 25.11.08]

Регистрация: Feb 2008
Сообщений: 25
По умолчанию эффект появления текста на AS3

задача стоит у меня следующая:
необходимо сделать, чтобы текст появлялся большими буквами и как бы проявлялся и уменьшался до определённой величины. то есть ка кбы появлялся из-за экрана и падал на него.

пытаюсь делать следующим образом:
Код AS3:
package main{
	import flash.display.Sprite;
	import flash.display.Stage;
	import flash.events.Event;
	import flash.text.*;
 
 
 
	public class index extends Sprite {
 
		// строки выводимые на экран
		var chars1:String = "Вы мечтаете купить машину?";
 
 
 
 
		public function index() {
 
			var txt:TextField = createMyText(chars1);
			var txt_fmt:TextFormat = myFormat(90);
			txt.setTextFormat(txt_fmt);
			addChild(txt);
 
			addEventListener(Event.ENTER_FRAME,onEnterFrame);
		}
		private function onEnterFrame(e:Event):void {
 
			var txt:TextField = createMyText(chars1);
			var txt_fmt:TextFormat = myFormat(90);
			if (txt_fmt.size>20) {
				txt_fmt.size -= 5;
			}
			txt.setTextFormat(txt_fmt);
			addChild(txt);
		}
		// TextFormat
		private function myFormat(ds:Number=100):TextFormat {
			var txt_fmt:TextFormat = new TextFormat();
			txt_fmt.color = 0xDDB049;
			txt_fmt.align = 'center';
			txt_fmt.size = ds;
			txt_fmt.font = 'Scriptorama';
 
			return txt_fmt;
		}
		private function createMyText(s:String,a:Number = 100):TextField {
			var txt:TextField = new TextField();
			txt.alpha = a;
			txt.htmlText = s;
			txt.width = stage.stageWidth;
			txt.height = stage.stageHeight;
			//
 
			return txt;
		}
	}
}
но выдаёт ошибку форматов
Код:
1118: Implicit coercion of a value with static type Object to a possibly unrelated type Number.
то есть я понимаю, что ошибка в данном случае кроется в том,ч то размер шрифта должен быть не нумбером, а каким-то ещё.

каким??

или как такой же эффект сделать по другом?
думал делать с помощью масштаба, но кода в формате устанавливаешь размер шрифта, то масштаб почему-то ен работает...

и ещё...
альфа почему-то тоже не работет.

Старый 10.11.2008, 21:35
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
нюанс в том, что TextFormat.size может быть и числом и строкой..
поставь txt_fmt.size = int(txt_fmt.size) - 5;, например

альфа в AS3: 0..1 - может поэтому, внимательно не смотрел твой код

по другому: наверное любым твинером изменить нужные свойства будет проще

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

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Код:
package main{
	import flash.display.Sprite;
	import flash.display.Stage;
	import flash.events.Event;
	import flash.text.*;
        import fl.transitions.Tween;
        import fl.transitions.easing.None;
 
	public class index extends Sprite 
        {
 
		var chars1:String = "Вы мечтаете купить машину?";
 

		public function index() 
                {
 
			
                 var sp=new Sprite();                                     //создаём спрайт
                 var txt:TextField = createMyText(chars1);
                 sp.addChild(txt);                                          //помещаем в спрайт текст
                 sp.filters=[new BlurFilter(0,0,3)];
                 //фильтр нужен что бы можно бы использовать твины
                 new Tween(sp,"alpha",None,0,1,5,true);          //изменяем альфу
                 new Tween(sp,"scaleX",None,5,1,5,true);        
                 new Tween(sp,"scaleY",None,5,1,5,true);        //и размер
                 this.addChild(sp);
         }
В коду могут быть ощибки...


Последний раз редактировалось incvizitor; 10.11.2008 в 21:46.
Старый 10.11.2008, 22:51
_Smirnoff вне форума Посмотреть профиль Отправить личное сообщение для _Smirnoff Найти все сообщения от _Smirnoff
  № 4  
Ответить с цитированием
_Smirnoff
 
Аватар для _Smirnoff

блогер
Регистрация: Jul 2007
Адрес: Russia
Сообщений: 292
Записей в блоге: 5
к [Czar] где такой раскрас [code] взял?
__________________
Оптимизация производительности на уровне кода

Старый 10.11.2008, 22:57
Czar вне форума Посмотреть профиль Отправить личное сообщение для Czar Найти все сообщения от Czar
  № 5  
Ответить с цитированием
Czar
[+4 25.11.08]

Регистрация: Feb 2008
Сообщений: 25
таксь, что то уже проясняется...
с твинами немножко разобрался...
правда данный код выдаёт ошибки ка краз наэти твины
Код:
1067: Implicit coercion of a value of type Class to an unrelated type Function.
1067: Implicit coercion of a value of type Class to an unrelated type Function.
1067: Implicit coercion of a value of type Class to an unrelated type Function.
я ещё плохо разбираюсь в данных ошибках...

и ещё... зачем создавать спрайт???
Код AS1/AS2:
var sp=new Sprite();//создаём спрайт
ведь у нас же клас наследует этот???

Старый 10.11.2008, 22:57
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от _Smirnoff Посмотреть сообщение
к [Czar] где такой раскрас [code] взял?
Этот вопрос надо не оффтопом посреди темы задавать, а писать в личку автору. В форме ответа можно было заметить новые кнопки.

Старый 10.11.2008, 22:58
Czar вне форума Посмотреть профиль Отправить личное сообщение для Czar Найти все сообщения от Czar
  № 7  
Ответить с цитированием
Czar
[+4 25.11.08]

Регистрация: Feb 2008
Сообщений: 25
Цитата:
Сообщение от _Smirnoff Посмотреть сообщение
к [Czar] где такой раскрас [code] взял?
кнопочка AS3 на панельке или [as3] теги ставить

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

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Цитата:
Сообщение от Czar Посмотреть сообщение
таксь, что то уже проясняется...
с твинами немножко разобрался...
правда данный код выдаёт ошибки ка краз наэти твины
Код:
1067: Implicit coercion of a value of type Class to an unrelated type Function.
1067: Implicit coercion of a value of type Class to an unrelated type Function.
1067: Implicit coercion of a value of type Class to an unrelated type Function.
я ещё плохо разбираюсь в данных ошибках...

и ещё... зачем создавать спрайт???
Код AS1/AS2:
var sp=new Sprite();//создаём спрайт
ведь у нас же клас наследует этот???
Спрайт - на всякий случай, если пашет без него - всё ок

я забыл строчку

Код:
import filters.BitmapFilter;
Хотя, думаю ты и так понял...

ошибочка там да?...

попробуй так:

Код AS3:
import fl.transitions.easing.Regular;
 
       //а в твинах исправь
 
       new Tween(sp,"alpha",Regular.easeIn,5,1,5,true);
 
       // (вместо "None","Regular.easeIn")

Старый 11.11.2008, 10:20
Czar вне форума Посмотреть профиль Отправить личное сообщение для Czar Найти все сообщения от Czar
  № 9  
Ответить с цитированием
Czar
[+4 25.11.08]

Регистрация: Feb 2008
Сообщений: 25
спасибо за разъяснения...но уже как то справился методом тыка)

правда мне надо,чтобы выводило четыре строчки последовательно...пробывал что-то сделать,
код получился следующий:
Код AS1/AS2:
package main{
	import flash.display.Sprite;
	import flash.display.Stage;
	import flash.events.Event;
	import fl.transitions.Tween;
	import fl.transitions.easing.*;
 
	import flash.text.*;
 
 
 
	public class index extends Sprite {
 
		// всплывающие строики 
		var chars1:String='строка 1 ';
		var chars2:String='строка 2';
		var chars3:String='стока 3';
		var chars4:String='строка 4';
 
		var texts:Array=[chars1,chars2,chars3,chars4];
 
 
 
 
 
		public function index() {
 
			var i:Number = 0;
			for each (var txt in texts) {
				var t:TextField=createMyText(txt);
				t.setTextFormat(myFormat(30));
				addChild(t);
 
				i = i+100;
				new Tween(t,'scaleX',null,100,1,1,true);
				new Tween(t,'scaleY',null,100,1,1,true);
				new Tween(t,'y',null,0+i,200+i,1,true);
 
			}
		}
		// TextFormat
		private function myFormat(ds:Number=100):TextFormat {
			var txt_fmt:TextFormat=new TextFormat;
			txt_fmt.color=0xDDB049;
			txt_fmt.align='center';
			txt_fmt.size=ds;
			txt_fmt.font='Scriptorama';
 
			return txt_fmt;
		}
		private function createMyText(s:String,a:Number=0):TextField {
			var txt:TextField=new TextField;
			txt.alpha=a;
			txt.htmlText=s;
			txt.width=stage.stageWidth;
			txt.height=stage.stageHeight;
			//
 
			return txt;
		}
	}
}
но тут выводяться все четыре строчки сразу, а мне надо, чтобы последовательно...
я так подозреваю, что как раз там в твине есть поле для функции, которая вызывается после завершения твина. я прав?

ЗЫ: в общем по ка что у меня всё получается кроме как последовательного вывода сообщений...
цикл из твинов не помагает...как быть???


Последний раз редактировалось Czar; 11.11.2008 в 18:51.
Старый 11.11.2008, 18:49
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 10  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Код AS1/AS2:
 
import flash.utils.setTimeout;
 
public function index() 
{
 
        var delay:int=200;// задержка 200 мс
	for each (var i:int=0;i<texts.length;i++) 
        {
	       setTimeout(initText,i*delay,texts[i],(i+1)*100);
	}
}
 
private function initText(txt:String,i:int)
{
        var t:TextField=createMyText(txt);
	t.setTextFormat(myFormat(30));
	addChild(t);
	new Tween(t,'scaleX',null,100,1,1,true);
	new Tween(t,'scaleY',null,100,1,1,true);
	new Tween(t,'y',null,0+i,200+i,1,true);
}
Так должно работать. Если хочешь под конец твина, то есть класс TweenEvent. В одном из твинов надо будет прописать

Код AS3:
var myTween=new Tween(/*свойства твина*/);
myTween.addEventListener(TweenEvent.MOTION_COMPLETE,myFunction);
Ещё надо будет импортировать класс TweenEvent

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

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

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


 


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


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