AS2: отключение ссылок в скрытых динамических текстовых полях и дочерних элементах мувиклипа - PullRequest
0 голосов
/ 17 июня 2009

Привет!

Я работаю на веб-сайте AS2 с MovieClips для страниц, которые меняются глубиной при нажатии на навигацию. Текстовое содержимое динамически извлекается из внешнего XML-файла и разрабатывается с помощью CSS, включая ссылки (HTML / CDATA). Моя проблема заключается в следующем:

Когда страница скрыта за другой с помощью swapDepths(), ссылки HTML на скрытой странице по-прежнему можно нажимать курсором руки. Я попытался mc.enabled = false на родительских клипах содержимого, но это не влияет на динамическую текстовую строку. Кто-нибудь знает, как отключить ссылки CDATA с Actionscript 2?

Тот же вопрос относится и к дочерним элементам MovieClip в целом: как отключить movieClips в родительском клипе в AS2 без жесткого кодирования имен экземпляров?

Заранее спасибо за любые предложения!

Вот код, которым я управляю обменом страниц:

// class code.Startup() :

      page_arr = new Array(); // references clips laid out in the IDE
      page_arr = [
            ['home', pages.homePage_mc],
            ['apartments', pages.apartmentsPage_mc],
            ['building', pages.buildingPage_mc],
            ['neighborhood', pages.neighborhoodPage_mc],
            ['press', pages.pressPage_mc],
            ['team', pages.teamPage_mc],
            ['retail', pages.retailPage_mc],
            ['office', pages.officePage_mc],
            ['contact', pages.contactPage_mc]
      ]

// class code.Navigation() :

private function showPage(num):Void {
        turnOffAllPages();

        if(siteFirstRun == true){ 
          prevPageObj = code.Startup.getInstance().page_arr[0][1]; 
                //defaults to homepage, already showing
          currPageObj = code.Startup.getInstance().page_arr[num][1]; 
                //sets currPageObj to whatever page was chosen with nav 
          siteFirstRun = false;
        }
        else {      
          if(currPageObj !== prevPageObj){
              prevPageObj = currPageObj;
          }
          currPageObj = code.Startup.getInstance().page_arr[num][1];
        }

      TweenLite.to(code.Startup.getInstance().page_arr[num][1], .25, {_alpha:100, ease:'easeOutQuad', delay:.25});

      if(prevPageObj !== undefined){
             currPageObj.swapDepths(code.Startup.getInstance().pages.getNextHighestDepth());
      }
      currPageObj.copy_mc.enabled = true;

      }

// Each page_arr clip contains a 'copy_mc' instance into which XML content is fed. These are what I need to target!

private function turnOffAllPages():Void{
      for(i=0; i<code.Startup.getInstance().numPages; i++){
        code.Startup.getInstance().page_arr[i][1].copy_mc.enabled = false; 
         // disable pages to avoid rolling over hidden links

         TweenLite.to(code.Startup.getInstance().page_arr[i][1], .2, {_alpha:0, ease:'easeOutQuad'});
      }
}

1 Ответ

0 голосов
/ 17 июня 2009

Я бы посоветовал два подхода к вашей проблеме:

1) Переместите свой видеоклип, который скрыт, в закадровое положение (т.е. установите _x и _y на что-то вне вашей сцены)

2) Прикрепите мувиклип или кнопку-блокиратор поверх скрытого mc, чтобы он не получал никаких событий мыши. Когда он снова станет скрытым, удалите блокировщик видеоклипа или кнопку.

...