![]() |
|
||||||||||
|
|||||
|
[+4 25.11.08]
Регистрация: Feb 2008
Сообщений: 25
|
задача стоит у меня следующая:
необходимо сделать, чтобы текст появлялся большими буквами и как бы проявлялся и уменьшался до определённой величины. то есть ка кбы появлялся из-за экрана и падал на него. пытаюсь делать следующим образом: 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. каким?? или как такой же эффект сделать по другом? думал делать с помощью масштаба, но кода в формате устанавливаешь размер шрифта, то масштаб почему-то ен работает... и ещё... альфа почему-то тоже не работет. |
|
|||||
|
нюанс в том, что TextFormat.size может быть и числом и строкой..
поставь txt_fmt.size = int(txt_fmt.size) - 5;, например альфа в AS3: 0..1 - может поэтому, внимательно не смотрел твой код по другому: наверное любым твинером изменить нужные свойства будет проще |
|
|||||
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. |
|
|||||
|
[+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. и ещё... зачем создавать спрайт??? ведь у нас же клас наследует этот??? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Этот вопрос надо не оффтопом посреди темы задавать, а писать в личку автору. В форме ответа можно было заметить новые кнопки.
|
|
|||||
|
[+4 25.11.08]
Регистрация: Feb 2008
Сообщений: 25
|
кнопочка AS3 на панельке или [as3] теги ставить
|
|
|||||
|
Цитата:
![]() я забыл строчку Хотя, думаю ты и так понял... ошибочка там да?... ![]() попробуй так: |
|
|||||
|
[+4 25.11.08]
Регистрация: Feb 2008
Сообщений: 25
|
спасибо за разъяснения...но уже как то справился методом тыка
)правда мне надо,чтобы выводило четыре строчки последовательно...пробывал что-то сделать, код получился следующий: 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. |
|
|||||
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 |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|