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

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

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

Регистрация: Feb 2008
Сообщений: 25
замечательно..спасибо огромное....

есть ещё пара вопросикв...

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

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

Старый 11.11.2008, 19:59
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 12  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
>>строки в данном скрипте получается как бы выезжают справа налево.
>>а как вот сделать их, чтобы они по серёдке появлялись??
>>второй вопрос, как сделать, чтобы изменение масштаба шло не линейно, а по экспоненте к пример?
Regular.easeInOut

Код:
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;

var txt:TextField = new TextField();
var i:Number;
txt.text = "THIS \nMEGA \nGOOD";
txt.autoSize = TextFieldAutoSize.LEFT;

var bd:BitmapData 
  = new BitmapData(500, 400, true, 0x00000000);//width,height,transparent,color
var bm:Bitmap = new Bitmap(bd);//экранная подложка для BitmapData
var myMatrix:Matrix = new Matrix();


var xMax:int = 100;
var yMax:int = 70;

myMatrix.createBox(8, 8, 0, 0, 0);//scaleX,scaleY,rotation,x,y

bd.draw(txt, myMatrix, null, null, null, true);
addChild(bm);

var tween:Tween = new Tween({i:0}, "i", Regular.easeInOut, 0, 1, 2, true);
tween.addEventListener(TweenEvent.MOTION_CHANGE, handleChange);
tween.addEventListener(TweenEvent.MOTION_FINISH, tweenFin);
function tweenFin(evt:TweenEvent) {
	tween.yoyo();
}
function handleChange(evt:TweenEvent):void {
	i = tween.obj.i;//number
	bm.scaleX = bm.scaleY = i;
	bm.alpha = i;
	bm.x = xMax-i*xMax;
	bm.y = yMax-i*yMax;

}

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

Регистрация: Feb 2008
Сообщений: 25
во бщем получилось у меня следующее:

Код AS3:
package main{
	import flash.display.*;
	import flash.net.*;
	import flash.events.*;
	import fl.transitions.Tween;
	import fl.transitions.TweenEvent;
	import fl.transitions.easing.*;
	import flash.text.*;
 
	import flash.utils.setTimeout;
 
 
	import flash.filters.BitmapFilter;
	import flash.filters.BitmapFilterQuality;
	import flash.filters.DropShadowFilter;
 
	import flash.geom.*;
 
 
	public class index extends Sprite {
 
 
 
 
 
 
		// всплывающие строики 
		private var chars1:String ='первая строка ';
		private var chars2:String ='вторая строка';
		private var chars3:String ='третья строка';
		private var chars4:String ='четвёртая строка';
		private var texts:Array  = [chars1,chars2,chars3,chars4];
		//индекс текущей строчки
		private var charIndex:Number = 0;
 
		private var c:Number = 0;
 
		// отступп появления по оси X
		private var xMax:int = 100;
		// отступп появления по оси Y
		private var yMax:int = 250;
 
		private var i:Number;
		// экземпляр движения
		private var tween:Tween = new Tween({i:0}, "i", Regular.easeInOut, 0, 1, 1, true);
		private var bd:BitmapData 
		  = new BitmapData(stage.stageWidth, 400, true, 0x00000000);//width,height,transparent,color
		private var bm:Bitmap = new Bitmap(bd);//экранная подложка для BitmapData
		private var myMatrix:Matrix = new Matrix();
 
 
		private var loader:Loader = new Loader();
		private var welcomeloader:Loader = new Loader();
		private var topTitle:TextField=new TextField;
		private var angle:Number = 45;
 
 
		public function index() {
 
			initText(texts[charIndex],charIndex);
 
 
 
		}
		private function initText(str:String,i:int) {
			var tween:Tween = new Tween({i:0}, "i", Regular.easeInOut, 0, 1, 1, true);
			//tween.removeEventListener(TweenEvent.MOTION_CHANGE,tweenFin);
			var txt:TextField = createMyText(str);
			myMatrix.createBox(2, 2, 0, 0, i*50);//scaleX,scaleY,rotation,x,y
			bd.draw(txt, myMatrix, null, null, null, true);
			addChild(bm);
			tween.addEventListener(TweenEvent.MOTION_CHANGE, handleChange);
			tween.addEventListener(TweenEvent.MOTION_FINISH, tweenFin);
		}
		// TextFormat
		private function myFormat(ds:Number=1):TextFormat {
 
			var txt_fmt:TextFormat=new TextFormat;
			txt_fmt.color= txtColor;
			txt_fmt.bold= true;
			txt_fmt.align= 'center';
			txt_fmt.size= ds;
			txt_fmt.font= 'Scriptorama';
 
			return txt_fmt;
		}
		private function createMyText(s:String):TextField {
			var txt:TextField=new TextField;
			txt.embedFonts = true;
			txt.type = TextFieldType.DYNAMIC;
			txt.selectable = false;
			txt.width = stage.stageWidth;
			txt.autoSize = TextFieldAutoSize.LEFT;
			txt.text = s;
			txt.y = 100;
			txt.setTextFormat(myFormat(fontSize));
 
			return txt;
		}
 
		private function tweenFin(evt:TweenEvent) {
			charIndex++;
			//trace(charIndex);
			if (charIndex<texts.length) {
				initText(texts[charIndex],charIndex);
 
			}
		}
		private function handleChange(evt:TweenEvent):void {
			i = tween.obj.i;//number
 
			bm.scaleX = bm.scaleY = i;
			bm.alpha = i;
			bm.x = xMax-i;
			bm.y = yMax-i;
		}
	}
 
}
но есть проблемка с текстом.. первая строка выезжает как положено, а вот остальные тупо появляются...куда копать чтобы они так же выезжали???
создавать отдельно для каждой строки твины?? а кактогда передовать параметр в функцию handleChange???

Добавлено через 18 часов 9 минут
эм...что ни у кого нет мыслей по поводу решения проблемы??

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

Регистрация: Sep 2002
Сообщений: 30,787
Czar получает плюс за находчивость в апе темы.

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

Регистрация: Feb 2008
Сообщений: 25
%))извиняюсь за нахальство...в предь не повторюсь...

но тема остаётся актуальной!
последнее чтоя придумал, это следующее
Код AS3:
package {
	import flash.display.*;
	import flash.events.*;
	import fl.transitions.*;
	import fl.transitions.TweenEvent;
	import fl.transitions.easing.*;
	import flash.text.*;
	import flash.utils.*;
	import flash.geom.*;
 
 
 
	public class test extends Sprite {
		// всплывающие строики 
		private var texts:Array  = [
		"первая строчка",
		"вторая строчка",
		"третья строка",
		"последняя,четвёртая"
		];
 
		//private var tweenArr:Tween;
		//private var tweenArr:Array = new Array();
		private var bd:BitmapData = new BitmapData(700, 600, true, 0x00000000);//width,height,transparent,color
		private var bm:Bitmap = new Bitmap(bd);//экранная подложка для BitmapData
		private var myMatrix:Matrix = new Matrix();
 
		private var xMax:int = 500;
		private var yMax:int = 200;
		private var i:Number;
		private var index:Number = 0;
 
 
		public function test() {
 
			addText();
			var tweenArr:Tween = new Tween({i:0}, "i", Strong.easeOut, 0, 1, 4, true);
			tweenArr.obj.idx = 
			tweenArr.addEventListener(TweenEvent.MOTION_CHANGE, handleChange);
			tweenArr.addEventListener(TweenEvent.MOTION_FINISH, fin);
 
		}
		private function addText() {
 
			// создание текстового поля
			var txt:TextField = new TextField();
			txt.text = texts[index];
			index++;
			txt.autoSize = TextFieldAutoSize.LEFT;
 
			// подключение текстового поля к битмапе
			myMatrix.createBox(1, 1, 0, 300, index*50);//scaleX,scaleY,rotation,x,y
			bd.draw(txt, myMatrix, null, null, null, true);
			addChild(bm);
 
 
 
		}
		function fin(evt:TweenEvent):void {
			//trace(evt.target);
 
			if (index < texts.length) {
				addText();
				var tweenArr:Tween = new Tween({i:0}, "i", Strong.easeOut, 0, 1, 4, true);
				tweenArr.addEventListener(TweenEvent.MOTION_CHANGE, handleChange);
				tweenArr.addEventListener(TweenEvent.MOTION_FINISH, fin);
 
			}
 
 
		}
		function handleChange(evt:TweenEvent):void {
			//trace(evt.target);
			i = evt.target.obj.i;//number
			bm.scaleX = bm.scaleY = i;
			bm.alpha = i;
			bm.x = xMax-i*xMax;
			bm.y = yMax-i*yMax;
 
		}
	}
 
}
немного переделал свой код.

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

но что-то всё никак не могу придумать как же сделать,чтобы всё по отдельности двигалось.

прошу снизойти гуру сайта и натолкнуть хоть на какую-то мысль.


Последний раз редактировалось Czar; 25.11.2008 в 18:50.
Создать новую тему Ответ Часовой пояс GMT +4, время: 06:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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