![]() |
|
||||||||||
|
|||||
|
[+4 25.11.08]
Регистрация: Feb 2008
Сообщений: 25
|
замечательно..спасибо огромное....
есть ещё пара вопросикв... первый из них: строки в данном скрипте получается как бы выезжают справа налево. а как вот сделать их, чтобы они по серёдке появлялись?? пробовал как то поиграться с координатой Х, но что-то так и не докумекал, как ее так высчитать, чтобы она была той, что надо... .. второй вопрос, как сделать, чтобы изменение масштаба шло не линейно, а по экспоненте к пример? |
|
|||||
|
>>строки в данном скрипте получается как бы выезжают справа налево.
>>а как вот сделать их, чтобы они по серёдке появлялись?? >>второй вопрос, как сделать, чтобы изменение масштаба шло не линейно, а по экспоненте к пример? 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;
}
|
|
|||||
|
[+4 25.11.08]
Регистрация: Feb 2008
Сообщений: 25
|
во бщем получилось у меня следующее:
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 минут эм...что ни у кого нет мыслей по поводу решения проблемы?? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Czar получает плюс за находчивость в апе темы.
|
|
|||||
|
[+4 25.11.08]
Регистрация: Feb 2008
Сообщений: 25
|
%))извиняюсь за нахальство...в предь не повторюсь...
но тема остаётся актуальной! последнее чтоя придумал, это следующее 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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|