Проблема со ссылкой на объект из функции — Adobe Animate Canvas

У меня возникли проблемы с получением функции для ссылки на фрагмент ролика на сцене (thatsRight). Я могу ссылаться на него вне функции, чтобы изначально установить его visible = false и внутри функции this.Correct на visible = true, но вызов другой функции this.removeAndCheck не может ссылаться на тот же фрагмент ролика на сцене. я получаю ошибку

«TypeError: undefined не является объектом (оценка «this.thatsRight.visible = false»)»

в строке функции this.removeAndCheck. Это не имеет смысла для меня. Одна функция может ссылаться на клип, а другая нет. Этот код находится на рамке.

this.thatsRight.visible = false;

this.Correct = function() {

  this.thatsRight.visible = true;

  setTimeout(this.removeAndCheck, 3000)
}


this.removeAndCheck = function() {
  this.thatsRight.visible = false;
  this.CheckAllCorrect();
  }

У меня также есть проблема с вызовом this.CheckAllCorrect(). this.CheckAllCorrect() также включен на одном, но на другом слое действий.

Это часть преобразования различных ресурсов flash as3 в ресурсы холста html5 с использованием Adobe Animate CC. Любая помощь в этом будет принята с благодарностью.


person efortin    schedule 22.03.2016    source источник
comment
Не уверен, как холст работает в Adobe Animate, но я думаю, вам следует передать этот аргумент в метод settimeout, а затем получить к нему доступ. Например, setTimeout(this.removeAndCheck, 3000, this), а затем this.removeAndCheck = function(value). параметр value будет содержать ссылку на этот   -  person SaachiTech    schedule 22.03.2016
comment
К вашему сведению, это не AS3, это просто JS. Я удалю тег [actionscript-3].   -  person Aaron Beall    schedule 22.03.2016


Ответы (1)


@Sammeer прав, это проблема области видимости. Обычно я обхожу это с помощью Function.bind

setTimeout(this.removeAndCheck.bind(this), 3000);

Вы также можете увидеть привязку локальной переменной следующим образом:

var that = this;
setTimeout(function() { that.removeAndCheck(); }, 3000);

Вот некоторые дополнительные материалы.

person Lanny    schedule 22.03.2016