![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2012
Сообщений: 18
|
И снова здравствуйте. Извините за назойливость, но не выходит "побороть координаты"
Начало проблемы находится здесь. Благодаря помощи на форуме дошли до такого кода import mx.transitions.Tween; import mx.transitions.easing.*; var cities:Array = ['Prim', 'Berd'] function mover (targetX, targetY){ currentX = marker_mc._x; currentY = marker_mc._y; var xTween:Tween = new Tween(marker_mc, "_x", Strong.easeOut, currentX, targetX, .5, true); var yTween:Tween = new Tween(marker_mc, "_y", Back.easeOut, currentY, targetY, 1.5, true); } for (var i = 0; i<cities.length; i++){ var my_btn = this[cities[i] + '_dist'][cities[i] + '_btn']; my_btn.myCity = cities[i]; my_btn.onPress = function() { trace(this.myCity) trace(marker_mc); mover(this._x, this._y); marker_mc.gotoAndStop(this.myCity); } } Но перемещает он его не на место, где расположен сам объект, а по координатам, близким к началу координат. Копание в отладчике показало, что координаты объектов (в отладчике) равны 0,0... Как я понимаю, это координаты кнопки внутри контейнера и они абсолютно не совпадают с координатами самого ролика. Отсюда вопрос: как изменить координаты объекта в мувиклипе на глобальные координаты для подстановки в строку Спасибо за помощь |
|
|||||
|
Модрон-ветеринар
|
Читайте про методы localToGlobal и globalToLocal.
__________________
Идите первым! |
|
|||||
|
Регистрация: Mar 2012
Сообщений: 18
|
Спасибо, посмотрю
Добавлено через 15 часов 40 минут Провозился с localToGlobal несколько часов, но так и не получилось его использовать Добавил в код var my_dist = this[cities[i] + '_dist']; var my_point = this[cities[i] + '_btn']; trace(my_dist.localToGlobal(my_point)); Пробовал var clickPoint:Point=new Point(this._x, this._y); var stagePoint:Point = this.localToGlobal(clickPoint); trace(stagePoint.x); ![]() Сил уже просто нет( Добавлено через 19 часов 17 минут Ну просто ума не приложу... Вставляю отрывок var new_point:Point=new Point(); new_point.x = this._x; new_point.y = this._y; trace (new_point.x); trace (new_point.y); new_point = localToGlobal(new_point); trace (new_point.x); trace (new_point.y); Цитата:
|
|
|||||
|
Регистрация: Mar 2012
Сообщений: 18
|
Вот исходник.
Заранее прошу прощения за стиль, просто это мой первый проект |
|
|||||
|
Регистрация: Mar 2012
Сообщений: 18
|
Проблема решена без использования localToGlobal
Конечный код выглядит так import mx.transitions.Tween; import mx.transitions.easing.*; var cities:Array = ['Prim', 'Berd'] function mover (targetX, targetY){ currentX = marker_mc._x; currentY = marker_mc._y; var xTween:Tween = new Tween(marker_mc, "_x", Strong.easeOut, currentX, targetX, .5, true); var yTween:Tween = new Tween(marker_mc, "_y", Back.easeOut, currentY, targetY, 1.5, true); } for (var i = 0; i<cities.length; i++){ var my_btn = this[cities[i] + '_dist'][cities[i] + '_btn']; my_btn.myCity = cities[i]; my_btn.onRelease = function() { var my_dist = this._parent; mover(my_dist._x, my_dist._y); marker_mc.gotoAndStop(this.myCity); } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|