2016-03-05 3 views
1

Как домашнее задание мне нужно закодировать простую галерею; мы также работаем с эффектами GreenSock. Вот мой код до сих пор:Устранение неполадок после включения Enable = false

import com.greensock.easing.*; 
import com.greensock.TweenLite; 

for (var i:Number = 0 ; i<5 ; i++){ 
    _root["a"+i].onRollOver=function(){ 
     TweenLite.to(this,.5,{_xscale:130,_yscale:130, 
        _alpha:90, 
        ease:Elastic.easeOut}); 
    } 
    _root["a"+i].onRollOut=function(){ 
     TweenLite.to(this,.5,{_xscale:100,_yscale:100, 
        _alpha:50, 
        ease:Elastic.easeOut}); 
    } 
    _root["a"+i].onPress=function(){ 
     var ix=this._name.substr(1); 
     TweenLite.to(_root["z"+ix],1,{_y:199.95, 
        ease:Quart.easeOut}); 
     for(i=0 ; i<5 ; i++){ 
      _root["a"+i].enabled=false; 
    } 
    } 
    _root["z"+i].cer.onPress=function(){ 
     var ix=this._parent.name.substr(1); 
     TweenLite.to(_root["z"+ix],1,{_y:-190.15, 
        ease:Quart.easeIn}); 
     for(i=0 ; i<5 ; i++){ 
      _root["a"+i].enabled=true; 
      _root["a"+i]._xscale=100; 
      _root["a"+i]._yscale=100; 
      _root["a"+i]._alpha=50; 
    } 
} 
} 

Я знаю, что есть много способов сделать галерею, но это в значительной степени структура, которую мы работали в классе, так что я не могу многое изменить. Дело в том, что все работает отлично, но как только я доберусь до точки, где отображается Content (z), и вы нажимаете на Movieclip внутри него, который закрывает его («cer»), хотя он возвращает, скажем, Select- (a) в исходное состояние (слегка всплывающее при выборе), похоже, просто игнорирует TweenLite.

_root["z"+i].cer.onPress=function(){ 
     var ix=this._parent.name.substr(1); 
     TweenLite.to(_root["z"+ix],1,{_y:-190.15, 
     ease:Quart.easeIn}); 

display

Как я понимаю, здесь мы в основном говорят: Из символа с именем «г» + текущее число вар «я», символ «ЦЭИ» имеет внутри при нажатии будет иметь следующую функцию: Снова мы определяем var «ix», сына предыдущего; результат вычитания одного символа из названия выбранного символа (поэтому мы получаем простой номер символа, так как их может быть тонна, и мы используем для упрощения). - функция, использующая Эффекты библиотеки TweenLite будут возвращаться в его положение за пределами отображаемого символа «z» + число, которое мы получаем из var «ix» только что определено

Теперь я не могу найти причину, по которой эта инструкция будет проигнорирована , когда простой след, похоже, очень хорошо работает с onPress; так что это заставляет меня думать, что это как-то связано с TweenLite. Также я полагаю, что это могло бы иметь какое-то отношение к enable = false/true, но я попытался поместить его в разные моменты в функцию, и, похоже, это не так. Я не думаю, что это как-то связано с вызовом символа -израиль, я просто узнаю обо всем этом, так что я могу описать это, потому что почти тот же самый код используется как раз перед тем, Контент (z) выводится на экран, и он работает отлично.

Это структурная проблема? Я нашел это на справочном сайте Adobe:

«Примечание Если видеоклип, который содержит _root загружен в другой фильм клип, _root ссылается на временную шкалу клипа загрузки фильма, а не Timeline, который содержит _root. Если вы хотите, чтобы _root ссылался на на временную шкалу загруженного видеоклипа, даже если он загружен в другой фрагмент ролика, используйте MovieClip._lockroot. "

Поскольку моя кнопка с несколькими кнопками MovieClip находится внутри содержимого MovieClip, мне нужно использовать автокоррекцию? Если да, то как?

Я бы действительно оценил некоторые советы .. Спасибо за ваше время!

ответ

0

Вы должны стараться избегать использования абсолютных путей. Используйте вместо этого. Просто используйте this вместо _root

Смежные вопросы