Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.03.2012, 20:27
Ar_man115 вне форума Посмотреть профиль Отправить личное сообщение для Ar_man115 Найти все сообщения от Ar_man115
  № 1  
Ответить с цитированием
Ar_man115

Регистрация: Mar 2012
Сообщений: 18
По умолчанию Перевод координат

И снова здравствуйте. Извините за назойливость, но не выходит "побороть координаты"
Начало проблемы находится здесь. Благодаря помощи на форуме дошли до такого кода
Код AS1/AS2:
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);
}
}
Этот код благополучно меняет кадр в объекте marker_mc и перемещает сам маркер.
Но перемещает он его не на место, где расположен сам объект, а по координатам, близким к началу координат.

Копание в отладчике показало, что координаты объектов (в отладчике) равны 0,0... Как я понимаю, это координаты кнопки внутри контейнера и они абсолютно не совпадают с координатами самого ролика. Отсюда вопрос: как изменить координаты объекта в мувиклипе на глобальные координаты для подстановки в строку
Код AS1/AS2:
mover(this._x, this._y);
Спасибо за помощь

Старый 15.03.2012, 20:37
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Читайте про методы localToGlobal и globalToLocal.
__________________
Идите первым!

Старый 15.03.2012, 20:39
Ar_man115 вне форума Посмотреть профиль Отправить личное сообщение для Ar_man115 Найти все сообщения от Ar_man115
  № 3  
Ответить с цитированием
Ar_man115

Регистрация: Mar 2012
Сообщений: 18
Спасибо, посмотрю

Добавлено через 15 часов 40 минут
Провозился с localToGlobal несколько часов, но так и не получилось его использовать

Добавил в код

Код AS1/AS2:
var my_dist =  this[cities[i] + '_dist'];
var my_point =  this[cities[i] + '_btn'];
trace(my_dist.localToGlobal(my_point));
В результате undefined

Пробовал

Код AS1/AS2:
var clickPoint:Point=new Point(this._x, this._y);
var stagePoint:Point = this.localToGlobal(clickPoint); 
trace(stagePoint.x);
Тот-же результат

Сил уже просто нет(

Добавлено через 19 часов 17 минут
Ну просто ума не приложу...
Вставляю отрывок
Код AS1/AS2:
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);
Получаю
Цитата:
0
0.05
undefined
undefined
Т.е. до localToGlobal локальные координаты показываются, а после становятся undefined

Старый 17.03.2012, 16:47
Ar_man115 вне форума Посмотреть профиль Отправить личное сообщение для Ar_man115 Найти все сообщения от Ar_man115
  № 4  
Ответить с цитированием
Ar_man115

Регистрация: Mar 2012
Сообщений: 18
Вот исходник.
Заранее прошу прощения за стиль, просто это мой первый проект
Вложения
Тип файла: rar Region_map_rastr_2_repaint.rar (718.9 Кб, 26 просмотров)

Старый 19.03.2012, 15:05
Ar_man115 вне форума Посмотреть профиль Отправить личное сообщение для Ar_man115 Найти все сообщения от Ar_man115
  № 5  
Ответить с цитированием
Ar_man115

Регистрация: Mar 2012
Сообщений: 18
Проблема решена без использования localToGlobal
Конечный код выглядит так
Код AS1/AS2:
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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:04.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.