Почему этот код выбрасывает ReferenceError # 1069? - PullRequest
1 голос
/ 15 февраля 2011

В первой строке этого кода выдается 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 Ответ

1 голос
/ 15 февраля 2011

Лучшая проверка на наличие focusMask была бы:

if (skin.hasOwnProperty("focusMask") && skin.focusMask!=null)...

Или, если вы хотите быть чище, вы должны извлечь focusMask в переменную:

var focusMask:DisplayObject = skin.getChildByName("focusMask");
if (focusMask)
    focusMask.visible = false;
...