![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 57
|
Здравствуйте, ситуация такая: у меня лента, выходящая за пределы экрана справа и слева, условно её можно разделить на 3 части, каждая часть оказавшись в экране подстраивается под него целиком (с помощью ТвинЛайта). А так же есть кнопка, которая по нажатии поднимает ленту наверх, а при повторном нажатии опускает вниз(!). До добавления твинлайтов в условие эта функция работала нормально. Теперь если после нажатия на кнопку мышь стоит неподвижно всё ок, но если в процессе поднятия сдвинуть мышь, то лента замирает, а кнопка ускакивает наверх/вниз.
Ниже участки кода и картинка. stage.addEventListener (MouseEvent.MOUSE_MOVE,onMoseMove); function onMoseMove (e:MouseEvent):void { var position:Number = qw_mc.x if(position <= 0){ setURLLoader("text1.xml") var myTween3:TweenLite = new TweenLite(qw_mc, 2, {x:-275}); }else if(position <= 550 && position >0){ setURLLoader("text2.xml") var myTween4:TweenLite = new TweenLite(qw_mc, 2, {x:275}); }else if(position <= 1100 && position >550){ setURLLoader("text3.xml") var myTween5:TweenLite = new TweenLite(qw_mc, 2, {x:825}); } } play2_btn.visible = false; play_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler); function fl_MouseClickHandler(event:MouseEvent):void { var myTween:TweenLite = new TweenLite(qw_mc, 1, {y:-100, ease:Quart.easeIn}); var myTween:TweenLite = new TweenLite(play_btn, 1, {y:0, ease:Quart.easeIn}); var myTween:TweenLite = new TweenLite(play2_btn, 1, {y:0, ease:Quart.easeIn}); play2_btn.visible = true; removeEventListener(MouseEvent.CLICK, fl_MouseClickHandler); } play2_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler2); function fl_MouseClickHandler2(event:MouseEvent):void { var myTween:TweenLite = new TweenLite(qw_mc, 1, {y:100, ease:Quart.easeIn}); var myTween:TweenLite = new TweenLite(play_btn, 1, {y:200, ease:Quart.easeIn}); var myTween:TweenLite = new TweenLite(play2_btn, 1, {y:200, ease:Quart.easeIn}); play2_btn.visible = false; removeEventListener(MouseEvent.CLICK, fl_MouseClickHandler2); } |
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
stage.addEventListener (MouseEvent.MOUSE_MOVE,onMoseMove); function onMoseMove (e:MouseEvent):void { var position:Number = qw_mc.x if(position <= 0){ setURLLoader("text1.xml") var myTween3:TweenLite = new TweenLite(qw_mc, 2, {x:-275}); }else if(position <= 550 && position >0){ setURLLoader("text2.xml") var myTween4:TweenLite = new TweenLite(qw_mc, 2, {x:275}); }else if(position <= 1100 && position >550){ setURLLoader("text3.xml") var myTween5:TweenLite = new TweenLite(qw_mc, 2, {x:825}); } } как я понимаю позиция полосы у вас <=0, значит вызывается этот твин следовательно проблема в нем |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 57
|
Проблема определённо в нем, т.к. без него лента сворачивания и разворачивания отлично. Но что делать? Подгонка под кадр должна быть обязательно. Можно ли выполнить её другим способом?
|
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
у вас так много твинов, я бы ввел переменную Boolean, которая стоит в false, становится true, когда один из твинов запускается, а когда он заканчивает действие переменная опять ставится в false. И все твины смотрят, если переменная false, значит можно запускаться.
Я так понял твины которые таскаю ленту вправо влево не должны работать когда лента убирается за экран, так введите переменную опять же Boolean которая будет true когда лента на stage, false когда лента начинает "ехать" вверх. А твины которые перетаскиваю ленту по Х, не могут таскать ее когда переменная в false. что- то типо такого function onMoseMove (e:MouseEvent):void { if(qw_mc_enabled){ var position:Number = qw_mc.x if(position <= 0){ setURLLoader("text1.xml") var myTween3:TweenLite = new TweenLite(qw_mc, 2, {x:-275}); }else if(position <= 550 && position >0){ setURLLoader("text2.xml") var myTween4:TweenLite = new TweenLite(qw_mc, 2, {x:275}); }else if(position <= 1100 && position >550){ setURLLoader("text3.xml") var myTween5:TweenLite = new TweenLite(qw_mc, 2, {x:825}); } } } |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 57
|
Но если у меня твины внитри функций как они передадут друг другу значения переменной Boolean (допустим если я выставляю его при onComplete)?
Что вы имеете в виду под qw_mc_enabled? Извините, я ещё много не понимаю, недавно начала изучать язык. |
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
Цитата:
qw_mc_enabled должно хранить значение, можно ли использовать твины или нет. Лента неактивна - твины которые запускаются от движения мыши не работают |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 57
|
Теоретически понятно, но не получается пока. Буду думать дальше как это употребить.
Добавлено через 2 часа 32 минуты Не получается, может что-то не туда пишу? Trace одновременно выводит true и false. stage.addEventListener (MouseEvent.MOUSE_MOVE,onMoseMove); function onMoseMove (e:MouseEvent):void { var position:Number = qw_mc.x if(var1 == false){ if(position <= 0){ setURLLoader("text1.xml") var myTween3:TweenLite = new TweenLite(qw_mc, 2, {x:-275}); }else if(position <= 550 && position >0){ setURLLoader("text2.xml") var myTween4:TweenLite = new TweenLite(qw_mc, 2, {x:275}); }else if(position <= 1100 && position >550){ setURLLoader("text3.xml") var myTween5:TweenLite = new TweenLite(qw_mc, 2, {x:825}); } } } var var1:Boolean = false; trace (var1); function changeVarValueToTrue ():void{ var1 = true; trace(var1); } function changeVarValueToFalse ():void{ var1 = false; trace(var1); } play2_btn.visible = false; play_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler); function fl_MouseClickHandler(event:MouseEvent):void { var myTween:TweenLite = new TweenLite(qw_mc, 1, {y:-100, ease:Quart.easeIn, onStart:changeVarValueToTrue(), onComplete:changeVarValueToFalse()}); var myTween:TweenLite = new TweenLite(play_btn, 1, {y:0, ease:Quart.easeIn}); var myTween:TweenLite = new TweenLite(play2_btn, 1, {y:0, ease:Quart.easeIn}); play2_btn.visible = true; removeEventListener(MouseEvent.CLICK, fl_MouseClickHandler); } play2_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler2); function fl_MouseClickHandler2(event:MouseEvent):void { var myTween:TweenLite = new TweenLite(qw_mc, 1, {y:100, ease:Quart.easeIn, onStart:changeVarValueToTrue(), onComplete:changeVarValueToFalse()}); var myTween:TweenLite = new TweenLite(play_btn, 1, {y:200, ease:Quart.easeIn}); var myTween:TweenLite = new TweenLite(play2_btn, 1, {y:200, ease:Quart.easeIn}); play2_btn.visible = false; removeEventListener(MouseEvent.CLICK, fl_MouseClickHandler2); } На меня неожиданно снизошло просветление и всё заработало. Если кому-то интересно, то сейчас выглядит так: stage.addEventListener (MouseEvent.MOUSE_MOVE,onMoseMove); function onMoseMove (e:MouseEvent):void { var position:Number = qw_mc.x if(var1 == false){ if(position <= 0){ setURLLoader("text1.xml") var myTween3:TweenLite = new TweenLite(qw_mc, 2, {x:-275}); }else if(position <= 550 && position >0){ setURLLoader("text2.xml") var myTween4:TweenLite = new TweenLite(qw_mc, 2, {x:275}); }else if(position <= 1100 && position >550){ setURLLoader("text3.xml") var myTween5:TweenLite = new TweenLite(qw_mc, 2, {x:825}); } } removeEventListener(MouseEvent.CLICK, onMoseMove); } var var1:Boolean = false; trace (var1); function changeVarValueToTrue ():void{ var1 = true; trace(var1); } function changeVarValueToFalse ():void{ var1 = false; trace(var1); } play2_btn.visible = false; play_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler); function fl_MouseClickHandler(event:MouseEvent):void { var myTween:TweenLite = new TweenLite(qw_mc, 1, {y:-100, ease:Quart.easeIn, onUpdate:changeVarValueToTrue()}); var myTween:TweenLite = new TweenLite(play_btn, 1, {y:0, ease:Quart.easeIn}); var myTween:TweenLite = new TweenLite(play2_btn, 1, {y:0, ease:Quart.easeIn}); play2_btn.visible = true; event.updateAfterEvent (); } play2_btn.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler2); function fl_MouseClickHandler2(event:MouseEvent):void { var myTween:TweenLite = new TweenLite(qw_mc, 1, {y:100, ease:Quart.easeIn, onComplete:changeVarValueToFalse}); var myTween:TweenLite = new TweenLite(play_btn, 1, {y:200, ease:Quart.easeIn}); var myTween:TweenLite = new TweenLite(play2_btn, 1, {y:200, ease:Quart.easeIn}); play2_btn.visible = false; event.updateAfterEvent (); } Последний раз редактировалось Yulia_V; 16.10.2012 в 18:51. |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|