Я получаю сообщение об ошибке в Flex 4 - PullRequest
0 голосов
/ 10 марта 2011

Я пытаюсь вызвать пользовательский компонент, но он постоянно говорит мне следующее:

TypeError: Error #1007: Instantiation attempted on a non-constructor.
at flexlib.containers::WindowShade/createOrReplaceHeaderButton()[C:\Users\user\Adobe Flash Builder 4\flexlib\src\flexlib\containers\WindowShade.as:205]
at flexlib.containers::WindowShade/createChildren()[C:\Users\user\Adobe Flash Builder 4\flexlib\src\flexlib\containers\WindowShade.as:320]

и вот компонент, который я вызываю, который постоянно выдает мне ошибку:

<flcont:WindowShade>
    <!-- this gives an error -->
</flcont:WindowShade>

А вот методы из вышеприведенной ошибки:

protected function createOrReplaceHeaderButton():void {
       if(_headerButton) {
            _headerButton.removeEventListener(MouseEvent.CLICK, headerButton_clickHandler);

            if(rawChildren.contains(_headerButton)) {
                rawChildren.removeChild(_headerButton);
            }
        }

        if(_headerRenderer) {
            _headerButton = _headerRenderer.newInstance() as Button;
        }
        else {
            var headerClass:Class = getStyle("headerClass");
            _headerButton = new headerClass();//error here
        }

        applyHeaderButtonStyles(_headerButton);

        _headerButton.addEventListener(MouseEvent.CLICK, headerButton_clickHandler);

        rawChildren.addChild(_headerButton);
    }

override protected function createChildren():void {
    super.createChildren();
    createOrReplaceHeaderButton();
}

1 Ответ

0 голосов
/ 11 августа 2011

У меня была такая же проблема.Мне пришлось добавить стиль для headerClass WindowShade, который был ClassReference для Button.Попробуйте добавить в свой проект что-то вроде этого:

@namespace flcont "http://code.google.com/p/flexlib/";
flcont|WindowShade {
    headerClass:ClassReference("mx.controls.Button");
}
...