Почему этот код выбрасывает ReferenceError #1069?
Первая строка этого кода выдает ReferenceError #1069. Msgstr "Свойство focusMask не найдено в ObjectButtonSkin и значение по умолчанию отсутствует." Переменная skin имеет тип MovieClip, а фактический экземпляр объекта имеет тип ObjectButtonSkin (который расширяет MovieClip).
if (skin["focusMask"] != null)
if (skin["focusMask"] is DisplayObject)
(skin["focusMask"] as DisplayObject).visible = false;
Это никогда не было проблемой раньше, поэтому я не уверен, почему это происходит. Класс ObjectButtonSkin не помечен как динамический или что-либо еще, так что, возможно, в этом проблема? Один сайт предложил мне использовать "()" вместо "[]" для доступа к свойству, но это не так.
1 ответ
Решение
Лучшая проверка на наличие focusMask была бы:
if (skin.hasOwnProperty("focusMask") && skin.focusMask!=null)...
Или, если вы хотите быть чище, вы должны извлечь focusMask в переменную:
var focusMask:DisplayObject = skin.getChildByName("focusMask");
if (focusMask)
focusMask.visible = false;