如何访问函数中导入的类属性?

时间:2015-04-24 00:14:50

标签: actionscript-3 flash-cc

我正在尝试在函数中声明类变量并在另一个函数中访问它的属性但是我收到错误1120.这是我的代码:

// function content
if (components == "settings")
{
    import DialogComponentsSettings;
    var dialogComponentsSettings:DialogComponentsSettings = new DialogComponentsSettings();
    addChild(dialogComponentsSettings);
    dialogComponentsSettings.init();
    back_mc.addChild(dialogComponentsSettings.settings_mc);

    dialogComponentsSettings.okBtn.addEventListener(MouseEvent.CLICK, onOkClick);
    dialogComponentsSettings.cancelBtn.addEventListener(MouseEvent.CLICK, onCancelClick);
}

private function onOkClick(e:MouseEvent):void
{
    var arr:Array = new Array();
    arr[0] = e.target.name;
    arr[1] = dialogComponentsSettings.cb.selected;
    arr[2] = dialogComponentsSettings.ns.value;
    arr[3] = dialogComponentsSettings.ta.text;
    dispatchEvent(new CustomEvent(CustomEvent.PASS_PARAMS, arr));
}

这给了我错误:

... \ PopupDialog.as,第129行,第13栏1120:访问未定义的属性dialogComponentsSettings。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的变量dialogComponentsSettings是该函数的局部变量。在该功能之外是未知的。这就是你收到错误的原因。

您应该在函数外部声明变量。这样它也可用于其他功能。

import置于if块中并没有多大意义:if条件是在运行时计算的,是编译时的import语句。

始终将导入放在代码的开头。这清楚地说明了使用的是什么导入,并且让其他开发人员试图阅读您的代码时遇到了寻找深层嵌套导入的麻烦,这些导入隐藏在您的代码中。