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

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

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

Регистрация: Sep 2011
Сообщений: 524
По умолчанию плавное движение по наклонной линии

мне понадобилось двигать спрайт по наклонной линии. по некоторым причинам point.polar решил не использовать и сделал так:
Код AS1/AS2:
y= 230-(Math.tan(angle)*(event.stageX ));
смещение y по вертикали считаем как неизвестный катет прямоугольного треугольника при известном другом(x) и угле.
Двигатся то спрайт двигается- под нужным углом.
Но - если двигать очень медленно - то заметны перескакивания спрайта с пикселя на пиксель.
как этого избежать?
есть подозрение что неправильно округляется посчитаное смещение
к примеру 5.7991 записывается в координату y как 5.79 то есть не округляется - а именно отбрасывается. как здесь можно решить эту задачку?

Старый 30.12.2011, 09:29
ProxyGreen вне форума Посмотреть профиль Отправить личное сообщение для ProxyGreen Найти все сообщения от ProxyGreen
  № 2  
Ответить с цитированием
ProxyGreen
 
Аватар для ProxyGreen

Регистрация: Jul 2011
Сообщений: 67
Можно заюзать TweenLite какой-нибудь. Он задачку и решит.

Старый 30.12.2011, 11:21
viktorami вне форума Посмотреть профиль Отправить личное сообщение для viktorami Найти все сообщения от viktorami
  № 3  
Ответить с цитированием
viktorami

Регистрация: Sep 2011
Сообщений: 524
так а в теории в чем причина и каков путь решения?

Старый 30.12.2011, 13:54
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Возможно там есть битмапы с pixelSnapping true. Тогда поставить им его в false.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 30.12.2011, 14:24
viktorami вне форума Посмотреть профиль Отправить личное сообщение для viktorami Найти все сообщения от viktorami
  № 5  
Ответить с цитированием
viktorami

Регистрация: Sep 2011
Сообщений: 524
специально ничего не ставил. но когда трейсом смотерл кординату у - она действительно как то странно меняется- не все значения а по -0.25 как то что ли...

Добавлено через 2 минуты
а как корректно применить это свойство - у меня компонент - наследует от Sprite пишет - такого свойства нет.

Добавлено через 12 минут
то есть уменя есть MoveClip(ну или спрайт) а в нем уже - битмап. но двигается то сам movieclip!
ну попробовал я к самому битмапу(при создании его внутри мови клипа применить так)
Код AS3:
var imageTextureMap:BitmapData=event.target.content.bitmapData;
var myImage:Bitmap = new Bitmap(imageTextureMap);
myImage.pixelSnapping="never";;
addChild(myImage as Bitmap);
не помогло. а у самого movieclip этого свойства - нет!

Добавлено через 29 минут
почему то, при записи в координату y значения округляются так - каждая новая строка- это новый опос mousemove

419.45
419.45
419.7
419.7
419.2
419.2
418.95
418.95
418.2
418.2
видите - при движении - бизкие значения вообще равны а потом сразу - перескок. вот там и получается лесенка- почему - не понятно

Старый 30.12.2011, 15:02
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 6  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
А smoothing если битмапе этой поставить? Двигается-то клип, но пикселы-то битмапы тоже двигаются и как они изображаются - определяется свойствами битмапы. Ещё что-то говорили, что может помочь скейл 100.1% поставить, но по-моему то про снаппинг.
Да, положения лепятся к твипам. С этим ничего не сделать, с этим придётся жить %)
Но и смещения на 1/20 пиксела на глаз не заметить. На пиксель или пол - можно. И вот у вас это на пиксел скачок, а не на 1/20. Если у вас эта 1/20 каким-то образом множится и становится ближе к пикселу - то тоже может быть такой эффект.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 30.12.2011, 15:38
viktorami вне форума Посмотреть профиль Отправить личное сообщение для viktorami Найти все сообщения от viktorami
  № 7  
Ответить с цитированием
viktorami

Регистрация: Sep 2011
Сообщений: 524
http://www.studia-kuhni.ru/calc/1/
вот сдесь как то ведь сделано)

Добавлено через 55 секунд
Ещё что-то говорили, что может помочь скейл 100.1% поставить
а это что подробнее можно?

Старый 31.12.2011, 03:50
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 8  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Что-бы дергалось плавней надо попробовать использовать при перемещении не координаты дисплейобъекта а просто Number числа, так они не будут округляться, дисплей объект их округлит себе до сотых, а визуально будет лучше.
Код AS3:
var angle:Number = тра-та-та.
var y:Number = 230-(Math.tan(angle)*(event.stageX ));
 
sprite.y = y;
__________________
Гоночка

Старый 31.12.2011, 23:18
viktorami вне форума Посмотреть профиль Отправить личное сообщение для viktorami Найти все сообщения от viktorami
  № 9  
Ответить с цитированием
viktorami

Регистрация: Sep 2011
Сообщений: 524
сори, но что то я не понял сути. а я разве не так делал? посчитать да присвоить!

Старый 01.01.2012, 14:00
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 10  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Тогда не знаю, а как такой вариант
419
419
419
419
419
419
418
418
418
418

поставить спрайту
Код AS3:
sprite.y = int(y)
всё равно визуально не понятно, сместился он на 1 пиксель или на 1 и долю пикселя.
__________________
Гоночка

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

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

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


 


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


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