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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.06.2008, 18:10
Kroli4eg вне форума Посмотреть профиль Отправить личное сообщение для Kroli4eg Найти все сообщения от Kroli4eg
  № 1  
Ответить с цитированием
Kroli4eg
[+2 24.06.08]
 
Аватар для Kroli4eg

Регистрация: Mar 2008
Адрес: Dubai
Сообщений: 34
По умолчанию scroolbar и startDrag

Доброго времени суток. Мне нужно создать что то на подобие скрулбара, водя за бегунок которого масштаб объекта увеличивается - уменьшается. Делаю так
Код:
scrool_mask.onPress = function()
{
   ScroolBar.startDrag(true, 501.9, 153, 501.9, 53);//peredvezenie polzunka
   polzunok =  scrool_counter - ScroolBar._y; //opredelenie maswtaba figuri
   polzunok_plus(polzunok);//peredaem maswtab v funkciu
}
scrool_mask.onRelease = scrool_mask.onReleaseOutside = function()
{
   ScroolBar.stopDrag();
}
Ни как не могу побороть зпазадание в масштабировании. Т.е. я когда по бегунку кликаю, бегунок передвигается, а координаты его передаются старые, и мне надо еще раз кликать что бы операция прошла успешно. И еще ни как не могу заставить менять масштаб во время перетаскивания бегунка. Что посоветуете отказатся от startDrag и сделать через привязку к координатам мыши или можно как нибудь этот код до ума довести?

Старый 14.06.2008, 23:27
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 2  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Код:
scrool_mask.onPress = function(){
	this.onMouseMove = function(){
		ScroolBar.startDrag(true, 501.9, 153, 501.9, 53);//peredvezenie polzunka
		polzunok =  scrool_counter - ScroolBar._y; //opredelenie maswtaba figuri
		polzunok_plus(polzunok);//peredaem maswtab v funkciu
	}
}

scrool_mask.onRelease = scrool_mask.onReleaseOutside = function(){
	ScroolBar.stopDrag();
	delete this.onMouseMove;
}
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб

Старый 15.06.2008, 10:21
Kroli4eg вне форума Посмотреть профиль Отправить личное сообщение для Kroli4eg Найти все сообщения от Kroli4eg
  № 3  
Ответить с цитированием
Kroli4eg
[+2 24.06.08]
 
Аватар для Kroli4eg

Регистрация: Mar 2008
Адрес: Dubai
Сообщений: 34
Спасибо помогло. И всетаки из-за чего происходит задержка в срабатывании, потому что событие stopDrag еще не произошло или это так событие onPress так работает?

Старый 15.06.2008, 11:11
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 4  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
По сути, координаты - это то, что мы видим на экране. То есть флэш пока не подвинет на экране, координаты не изменяться.
Экран он обновляет когда выполняется весь скрипт. То есть
Код:
 ScroolBar.startDrag(true, 501.9, 153, 501.9, 53);//peredvezenie polzunka
   polzunok =  scrool_counter - ScroolBar._y; //opredelenie maswtaba figuri
   polzunok_plus(polzunok);//peredaem maswtab v funkciu
Этот скрипт выполняется, после обновляется экран, а значит, и координаты.
Можно принудительно перерисовать экран вот этой ф-цией:
Код:
updateAfterEvent();

Старый 15.06.2008, 12:53
Kroli4eg вне форума Посмотреть профиль Отправить личное сообщение для Kroli4eg Найти все сообщения от Kroli4eg
  № 5  
Ответить с цитированием
Kroli4eg
[+2 24.06.08]
 
Аватар для Kroli4eg

Регистрация: Mar 2008
Адрес: Dubai
Сообщений: 34
У меня так не получилось. :-( Все равно идет запаздание. Т.е. во время клика до отпускания клавиши мыши координаты одной фигуры не пересчитываются относительно другой. Может у меня в коде ошибка?
Код:
small_move = function ()//funkciya peredvizeniya odnogo ob'ekta otnositel'no drugogo
{
  ax = bigmap._width/221;
  bigmap._x = ram_test._width*ax/2 - (ram_test._x - 640)*ax + 5.2;
  bigmap._y = ram_test._height*ax/2 -(ram_test._y - 100)*ax + 15.55;
}

smallmap.onPress = function()
{
 coords();
 ram_test.startDrag(true, cs3, cs2 + 0.1, cs4, cs1);
 updateAfterEvent();
 onMouseMove = small_move;
 small_move(); // vizov etoy funkcii srabativaet so starimi koordinatami
 updateAfterEvent();
}

smallmap.onRelease = smallmap.onReleaseOutside = function()
{
  onMouseMove = null;
  ram_test.stopDrag();
}
В итоге сделал так:
Код:
smallmap.onPress = function()
{
 coords();
 ram_test.startDrag(true, cs3, cs2 + 0.1, cs4, cs1);
 onMouseMove = small_move;
 timerID = setInterval(small_move, 10);
}

smallmap.onRelease = smallmap.onReleaseOutside = function()
{
  onMouseMove = null;
  ram_test.stopDrag();
  clearInterval(timerID);
}
Но тут возникли новые проблемы:
1. Эта функция вызывает мою функцию с переодичностью(чего мне не надо)
2. Как будет выглядить запись если мне нужно будет передавать в мою функцию какое нибуть значение

Старый 15.06.2008, 13:06
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 6  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Код:
small_move = function ()//funkciya peredvizeniya odnogo ob'ekta otnositel'no drugogo
{
  ax = bigmap._width/221;
  bigmap._x = ram_test._width*ax/2 - (ram_test._x - 640)*ax + 5.2;
  bigmap._y = ram_test._height*ax/2 -(ram_test._y - 100)*ax + 15.55;
}
Очень странно Вы находите координату Y, используя ax
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб

Старый 15.06.2008, 13:40
Kroli4eg вне форума Посмотреть профиль Отправить личное сообщение для Kroli4eg Найти все сообщения от Kroli4eg
  № 7  
Ответить с цитированием
Kroli4eg
[+2 24.06.08]
 
Аватар для Kroli4eg

Регистрация: Mar 2008
Адрес: Dubai
Сообщений: 34
Цитата:
Сообщение от MrPoma Посмотреть сообщение
Код:
small_move = function ()//funkciya peredvizeniya odnogo ob'ekta otnositel'no drugogo
{
  ax = bigmap._width/221;
  bigmap._x = ram_test._width*ax/2 - (ram_test._x - 640)*ax + 5.2;
  bigmap._y = ram_test._height*ax/2 -(ram_test._y - 100)*ax + 15.55;
}
Очень странно Вы находите координату Y, используя ax
Почему странно? У меня есть два прямоукольника, один отмасштабированная копия другого. Там нет разници меджду делением ширины на ширину и высоты на высоту результат ведь все равно один

Старый 15.06.2008, 14:13
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 8  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Ширина на ширину и высота на ширину.
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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