Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Линия неправильно растягивается (height) (http://www.flasher.ru/forum/showthread.php?t=142966)

mj_nooker 04.08.2010 09:55

Линия неправильно растягивается (height)
 
Доброго времени!

Замучился я.
Есть объект А - верхняя кнопка рисованного скроллера.
Объект В - нижняя кнопка.
Объект С - вертикальная линия, соединяет А и В.

Математически вычисляю расстояние между А и В (от верт.координаты В отнимаю её высоту, от этого всего отнимаю _y координату А и высоту А), присваиваю С._height полученное значение - линия С короче, чем надо.
Скейл родительского мувика - 100% (тоесть недотягивает не из-за уменьшенного скейла).

Я так понимаю - загвоздка не в самом скрипте, а в понятиях Flash.
Облазил всевозможные точки трансформации, свойства scale линии и т.д. - ничего не помогло. Но ведь проблема только во мне, иначе-бы инет давно-бы заполнился криками о помощи в данном вопросе.

Помогите, пожалуйста, советами. Надоело безрезультатно тыкать пальцем в небо ((

udaaff 04.08.2010 10:48

А зачем от B её высоту отнимаете? Объекты все в ноле центрированы?

mj_nooker 04.08.2010 11:00

пробовал по разному вычислять
объекты=Линия в мувике, всё отцентрировано в нуле

mj_nooker 04.08.2010 11:21

Вложений: 1
Вот показано на отдельном примере...:wacko:

mj_nooker 04.08.2010 18:11

Господа, посмотрите пример, плз, а? )
Нафантазировал кучу вариантов для строки поиска Гугли и форума - не нашёл конкретной подходящей инфы. До сих пор сижу, уже зеваю по вертикали)))

rainbowrussia 04.08.2010 21:49

Сохраните для CS3.

mj_nooker 04.08.2010 23:58

Вложений: 1
пожалуйста

rainbowrussia 05.08.2010 03:42

У вас какая-то заморочка с c_mc, а именно с линией. Сделайте вместо линии прямоугольник и все заработает. Или создайте c_mc заново с линией. Я создал заново эту линию - все стало более-менее похоже на правду, но с прямоугольником (пусть даже узким, как линия) все нормально.

upd. Кстати вот решения для вашего случая. Не знаю почему _height так себя ведет, а вот _yscale не подвел:

Код AS1/AS2:

c_mc._yscale = (a_mc._y - b_mc._y - b_mc._height)*100/24;


mj_nooker 05.08.2010 04:47

Спасибо за помощь!

Да, в ходе "игры" с глюком я видел, что если ставить ЗАЛИВКУ, а не ЛИНИЮ, то длина соответствует, но в моём случае интересовала именно линия. Хотя (если учесть, что проблемы рано или поздно однозначно должны быть решены), в конечном итоге, если другого выхода я не найду (например, после "растяжки" дублирую эту линию и ставлю эту копию в продолжение оригинальной и ещё пару вариантов "голь на выдумки хитра" ;) ), то поставлю заливку и плясать буду уже отталкиваясь от неё.

Я думал, что может где-то есть "галка", с которой мне не доводилось сталкиваться ранее.

Добавлено через 2 часа 31 минуту
О! ещё раз спасибо за upd!) О скейле "прямо под носом" я, таки устал, не догадался.

Судя по логике вычисления скейла, 24 это высота линии? (ну на всякий уточнил :) )

rainbowrussia 05.08.2010 15:11

Да, 24 это изначальная высота клипа с линией.
С линиями во флеше все как-то осень непросто, по-этому если позволяет задача - сделайте линию в виде прямоугольника шириной 1 (или сколько надо) пиксель - будет выглядеть как линия.


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

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