2009-07-02 12 views
1

У меня вопрос о том, как преобразовать родительский мувиклип, а не дочерний мувиклип ... У меня есть мувиклип, содержащий загрузчик изображений, а некоторые - как мувиклип. Мультиками ручек используются для прослушивания события мыши для выполнения такого масштабирования масштабирования функции и перевода родительского мувиклипа. Проблема здесь, когда я масштабирую или поворачиваю мувиклип, ручки также вращаются и масштабируются, хотя я хочу, чтобы он следил за родительским мувиклипом, пока родительский мувиклип вращается, но я не хочу, чтобы ручки также масштабировались.Не масштабируйте дочерний фильмClip?

Есть ли способ избежать ручек от масштабирования.

Спасибо

ответ

3

Если вы не застряли с этой структурой, я бы просто переставлять вещи. Например, я хотел бы построить его вроде этого:

- container 
    - handles 
    - image loader 

Таким образом, у вас есть только беспокоиться о размещении ручки в правильных местах, а не дело с проблемами масштабирования.

Если вам нужно поддерживать ту же структуру, вам необходимо установить масштаб ручек как обратный к масштабу родителя. Например, если размер родителя равен 2, вы хотите, чтобы шкала дескриптора была равна 0,5. Итак, все, что вам нужно сделать, чтобы вычислить масштаб ручки, состоит в том, чтобы разделить 1 по шкале родителей.

0
  1. Переопределение set height и set width функции в родительском MC (вы могли бы сделать scaleX и scaleY, а).
  2. В перекрытых функции задают значение, позвонив по телефону супер, а затем проверить Scalex/ScaleY
  3. установить scaleX(для ширины) или scaleY(для роста) ребенка MC к 1./scaleX(ширина) или 1./scaleY(высота)

Это было легко.

0

В обработчике onEnterFrame или что-то в этом роде scaleX и scaleY до 1/(parent.scaleX) и 1/(parent.scaleY).

4

Попробуйте это:

inside_mc.addEventListener(Event.ENTER_FRAME, function(){ 
    inside_mc.scaleX = 1/inside_mc.parent.scaleX; 
    inside_mc.scaleY = 1/inside_mc.parent.scaleY; 
}); 
+0

Потрясающе! Используя это, я мог бы свободно устанавливать ширину моих вспомогательных объектов. Это также позволяет мне использовать scale9grid для любого дочернего объекта таким образом: this.mychild.scaleX = 1/this.scaleX; это.mychild.width * = this.scaleX; Спасибо! – XPac27

0

что вы описали это более сложный способ сделать это, и это не изменить размер/переместить точно, и больше CPU еды. лучший способ сделать это (кстати, ко мне приходилось спать), чтобы создать нового ребенка, назовите его backgroundMC (имя должно дать понять) и изменить размер backgroundMC, а не родителя. родитель автоматически изменит размер до размера, но дочерние окна не будут масштабироваться