Форум 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)
-   -   Клип не двигается. (http://www.flasher.ru/forum/showthread.php?t=143836)

КорДум 26.08.2010 22:46

Клип не двигается.
 
Здравствуйте. Имеется клип-прямоугольник с подложкой - просто прямоугольник, залитый цветом. Внутри еще есть клип-контейнер, в него загружается картинка:

Код AS1/AS2:

// код в классе общего клипа:
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.loadClip("img.jpg", container);

Но вот нужно, чтобы картинка, а вернее container, был именно такого же размера, как и внешний клип. Как делаю: запоминаю перед загрузкой размеры клипа, загружаю и делаю клипу-контейнеру такие же размеры. Все правильно, ошибки нет. Но стоит только повернуть внешний клип на сколько-то градусов - все, запоминаемые размеры уже неправильные, соответственно назначить истинные размеры контейнеру уже нельзя. Вот и как быть?
Грубо говоря, мне нужно, чтобы клип-контейнер был точно такого же размера, как и подложка в общем клипе.

mooncar 26.08.2010 23:34

Может быть заранее программно повесить маску? Хотя я видимо не до конца уяснил себе весь ваш сэндвич и задачу.

КорДум 26.08.2010 23:40

Хорошо, сейчас распишем, что-то я и правда замудрил в топикстарте.
Изначально мы имеем клип mc с графикой - обычный квадрат. К этому клипу прилинкован класс. В классе создается пустой контейнер container и помещается в наш клип (в this, то есть). Далее мы запоминаем текущие размеры клипа, подгружаем картинку в container, делаем container'у наши запомненные размеры. На выходе мы имеем загруженную картинку нужного размера. То есть, ничего сверхъестественного.
Полтергейст обнаруживается далее: стоит только наш общий клип mc повернуть на сколько-то градусов и сделать все то же самое, что и до этого - на выходе мы имеем размер картинки совершенно другой, как визуально, так и по трейсу размеров. Все из-за того, что повернутый клип, на удивление, имеет другие размеры, относительно его начальной позиции при _rotation = 0. Вот такая вот билеберда. И как с этим бороться - фиг знает.

FriOne 27.08.2010 00:05

Плохо понятно что у вас там происходит.
По идее если у вас есть два мувиклипа, то при повороте их размеры не менются..
Может покажите побольше кода, тогда будет все ясно.

КорДум 27.08.2010 00:10

Да какой код... создайте квадрат 100*100, поверните на сколько-то градусов и протрейсите, допустим, ширину. У меня она выдала 138 при повороте на 60 градусов.

FriOne 27.08.2010 00:18

Ну это естесственно, ведь width считает не ширину квадрата, а ширину клипа.
(например диагональ квадрата 100*100 будет больше, чем 100)
Если у вас какие-то анамалии, то надо кого-то попытней спросить)

КорДум 27.08.2010 00:23

Хорошо, если так, то как узнать настоящую ширину клипа в обычном состоянии? Вариант с вращением на минус поворот, запоминанием координат и вращением обратно не рассматривается - из-за него не работает анимация, созданная руками у внешнего клипа.

Добавлено через 4 минуты
Кстати, проверил - при повернутом клипе получение его _rotation показывает фигу, то есть 0.

FriOne 27.08.2010 00:32

Вашей аномалии не помогу, а про ширину - может тригонометрия как-нибудь поможет..

КорДум 27.08.2010 00:36

...как-нибудь...
угу, я тоже думал о тригонометрии, набрасывал чертежи. Но своим умом допереть до закономерности не смог.

FriOne 27.08.2010 00:55

У вас клип стоит в координатах (0,0) ? Это я ктому, что вроде вращение происходит через эту точку..
Вам именно надо значение ширины или нарисовать такой же квадрат как и картинка?
P.S. Если координаты поворота в (0,0), то если вписать квадрат в круг, то его вершины будут находиться на окружности..
P.S.S. Возможно поможет.. так информация для размышления..


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

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