![]() |
|
||||||||||
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
как можно создать переменную так, чтобы она принадлежала типу number и string?
вот пример того, что мне надо: var mX //та самая переменная для изменения DELSS.addEventListener(MouseEvent.MOUSE_OVER, mXX) DELSS.addEventListener(MouseEvent.MOUSE_OUT, Mxx) addEventListener(Event.ENTER_FRAME, h) function h (e:Event):void { TweenLite.to(radar, 0.2, {x:mX, y:mouseY}); } function mXX (e:MouseEvent):void { trace ("попал") mX = 400 } function Mxx (e:MouseEvent):void { trace ("убрал") mX = mouseX } нужно чтобы объект radar двигался за мышкой с помощью TweenLite.to, а как только мышка наезжала на объект radar, он смог двигаться за мышкой только по координате Y и по X=400. Я попробовал сделать с помощю переменных, дал переменной mX тип - Number, но возникали проблемы, я предположил что строка - mX = mouseX не работает потому что эта переменная типа Number т.к. строка mX = 400 прекрасно работает и я подумал что нужно создать переменную чтоб считались эти два типа, но я таких не знаю. |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Два типа у одной переменой невозможны, можно приводить из одного в другой тип когда нужно, но у тебя в другом проблема. Что такое mouseX? В общем если нужно из String в Number то делаем так var myVar:number = Number(stringVar); и наоборот.
Последний раз редактировалось Sintesis; 17.11.2012 в 19:47. |
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
сегодня я помаялся над кодом и сделал так:
import flash.events.MouseEvent; import flash.events.Event; import com.greensock.*; addEventListener(Event.ENTER_FRAME, h) function h (e:Event):void { DELSS.addEventListener(MouseEvent.MOUSE_OVER, mXX) DELSS.addEventListener(MouseEvent.MOUSE_OUT, Mxx) } function mXX (e:MouseEvent):void { trace ("попал") TweenLite.to(radar, 0.2, {x:400, y:mouseY}); } function Mxx (e:MouseEvent):void { trace ("убрал") TweenLite.to(radar, 0.2, {x:mouseX, y:mouseY}); } все великолепно, только при помещении мышки на объект DELSS, объект radar помещается в X=400, Y=положение мышки по Y, а потом не перемещается за мышкой по Y. Как только мыш убираем с объекта DELSS, объект radar помещается в X=положение мышки по X, Y=положение мышки по Y, а потом не перемещается за мышкой по X и Y. Как сделать так чтоб объект радар всегда перемещался за мышкой? и вообще, я все правильно сделал? Последний раз редактировалось XMON; 18.11.2012 в 13:35. |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Чтоб объект перемещался за мышкой нужно событие MouseEvent.MOUSE_MOVE
оно возвращает позицию мышки на stage и локальную позицию. |
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
вы не совсем поняли(или я).
проблема только в том что кода мышка попадает или сходит с объекта DELSS, объект radar бежит за мышкой как я сказал и перестает двигаться и только когда заново мышка попадает или сходит с объекта DELSS, объект radar бежит за мышкой и останавливается в последних координатах мышки. |
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
думаю так будет наглядне:
|
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
все, я разобрался. Сначала я не понял про MOUSE_MOVE и подумал что вы меня не так поняли, но позже я осознал что это то что мне надо (2 дня непрерывной и не успешной работы).
ОГРОМНОЕ ВАМ СПАСИБО! и ещё один вопросик, есть ли такое событие чтобы оно проверяло - на объекте мышка находится, или нет? |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Цитата:
Да есть такие события MouseEvent.MOUSE_OVER, MouseEvent.MOUSE_OUT, вы их уже использовали можно применить на объект событие MOUSE_MOVE когда мышка над ним. DELSS.addEventListener(MouseEvent.MOUSE_OVER, overListener) //мышка над DELSS DELSS.addEventListener(MouseEvent.MOUSE_OUT, outListener)//мышка ушла, в нашем случае ей тяжело будет это сделать function overListener (e:MouseEvent):void{ //e.target возвращает объект на который повешено событие у вас это DELSS //и в это время мы можем повесить на DELSS событие MOUSE_MOVE e.target.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener); } //а когда мышка не на ушла с DELSS убираем событие function outListener (e:MouseEvent):void{ e.target.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener); } |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Ой и точно, звёздочка же есть, просто не пользуюсь никогда, как-то она дисциплину нарушает, хочется, чтоб всё было типизировано.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 14:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|