Получил ошибку 1120 ~ Доступ к неопределенному свойству - PullRequest
0 голосов
/ 15 ноября 2009

Это не ваш типичный 1120. Я знаю лучше, чем иметь кнопки / MC без имен экземпляров на временной шкале.

Нет, эта проблема заключается в таймере I, который я построил из сценария, который нашел в Интернете. Неопределенное свойство связано с задержкой класса таймера, которую я хочу реализовать.

Я пытаюсь добиться того, чтобы пользователь нажал следующую кнопку, подождал 1 секунду, а затем пролистал следующий контент. У меня есть код, сидящий внутри условного оператора, чтобы уменьшить объем кода.

Стоит отметить, что я использую TweenLite для переходов, если это имеет какое-то значение

Теперь следующий код покажет вам таймер, работающий только на одну следующую позицию. Я хочу добавить это к оставшейся следующей позиции и ко всем предыдущим позициям, чтобы при прокрутке содержимого была небольшая задержка.

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

Как бы я решил свою начальную проблему, а затем упростил бы код для повторного использования кода в проекте?

Заранее спасибо за помощь!

import gs.TweenLite;
import gs.easing.*;

var timer:Timer = new Timer(1500, 1);

next_mc.addEventListener(MouseEvent.CLICK, nextListener);
prev_mc.addEventListener(MouseEvent.CLICK, prevListener);
timer.addEventListener(TimerEvent.TIMER, delay); //I get the error here with "delay" 

prev_mc.visible = false;

function nextListener(event:MouseEvent):void {

 if (this.content_mc.slider_mc.x == 0) {

  function delay(event:TimerEvent):void {
   TweenLite.to(this.content_mc.slider_mc, 1, {x:-923.2, y:0, ease:Quart.easeInOut});
   prev_mc.visible = true;
  }
 } else {
  TweenLite.to(this.content_mc.slider_mc, 1, {x:-1872, y:0, ease:Quart.easeInOut});
  next_mc.visible = false;
 }
}

function prevListener(event:MouseEvent):void {
 if (this.content_mc.slider_mc.x == -1872) {
  TweenLite.to(this.content_mc.slider_mc, 1, {x:-923.2, y:0, ease:Quart.easeInOut});
  next_mc.visible = true;
 } else {
  TweenLite.to(this.content_mc.slider_mc, 1, {x:0, y:0, ease:Quart.easeInOut});
  prev_mc.visible = false;
 }
}

next_mc.buttonMode = true;
prev_mc.buttonMode = true;

timer.start();

Ответы [ 2 ]

1 голос
/ 15 ноября 2009

Проблема в том, что функция delay определена в вашей функции nextListener, поэтому она не доступна в вашем коде timer.addEventListener(TimerEvent.TIMER, delay);. Я думаю, что вы хотели переместить timer.addEventListener(TimerEvent.TIMER, delay) внутрь следующего обработчика кнопки.

0 голосов
/ 16 ноября 2009

Это проблема с областью видимости. Вы вызываете функцию 'delay' из этой строки:

timer.addEventListener(TimerEvent.TIMER, delay); //I get the error here with "delay" 

но функция задержки определена в другой функции, nextListener .

Это означает, что эта строка не может видеть функцию задержки. Чтобы устранить эту проблему, просто поместите эту строку внутри функции nextListener:

function nextListener(event:MouseEvent):void {
// newly added ---v
timer.addEventListener(TimerEvent.TIMER, delay); //I get the error here with "delay" 
// rest of code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...