0

これが私のコードです。

<?xml version="1.0" encoding="utf-8"?>

<fx:Script>
    <![CDATA[
        import comps.sampleTextArea;

        import mx.managers.PopUpManager;



        protected function button1_clickHandler(event:MouseEvent):void
        {
            var pop:sampleTextArea = new sampleTextArea();
            PopUpManager.createPopUp(this, sampleTextArea, false);
            PopUpManager.centerPopUp(pop);
        }
    ]]>
</fx:Script>

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<s:Button click="button1_clickHandler(event)" label="open popup"/>

ここにポップアップのコードがあります

<?xml version="1.0" encoding="utf-8"?>

<fx:Script>
    <![CDATA[
        import mx.managers.PopUpManager;
        protected function button1_clickHandler(event:MouseEvent):void
        {
            ta.text = '';
            PopUpManager.removePopUp(this);
        }
    ]]>
</fx:Script>

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:layout>
    <s:VerticalLayout horizontalAlign="center" verticalAlign="top" />
</s:layout>
<s:TextArea id="ta" width="100%" height="90%">

</s:TextArea>
<s:Button label="Submit" click="button1_clickHandler(event)" />

アプリケーションによってエラーが発生した後のテキスト領域をクリックすると。

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at spark.components::Scroller/focusInHandler()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Scroller.as:2139]
at flash.display::Stage/set focus()
at flashx.textLayout.container::ContainerController/http://ns.adobe.com/textLayout/internal/2008::setFocus()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\container\ContainerController.as:2265]
at flashx.textLayout.container::ContainerController/mouseDownHandler()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\container\ContainerController.as:2067]
at flashx.textLayout.container::TextContainerManager/mouseDownHandler()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\container\TextContainerManager.as:1939]
at spark.components.supportClasses::RichEditableTextContainerManager/mouseDownHandler()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\supportClasses\RichEditableTextContainerManager.as:666]
at flashx.textLayout.container::ContainerController/http://ns.adobe.com/textLayout/internal/2008::requiredMouseDownHandler()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\container\ContainerController.as:2088]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:13152]
at mx.managers::SystemManager/mouseEventHandler()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\SystemManager.as:2918]

この問題をどのように処理するか

4

4 に答える 4

1

thisクリックした要素のステージ番号を参照するため、試してみてください。

PopUpManager.removePopUp(event.target);
于 2012-06-08T10:16:17.623 に答える
0

非 IFocusManagerContainer 内でフォーカス可能なコンポーネントをポップアップできない場合があります。Group コンテナが IFocusManagerContainer クラスを実装している場合、PopUpManager を使用できます。

<s:Group implements="mx.managers.IFocusManagerContainer"/>
于 2012-06-08T15:25:38.983 に答える
0

私は同じ問題に遭遇しました。根本的な原因は、ポップアップされるコンポーネントがIFocusManagerContainerインターフェイスを実装していない場合、PopUpManager/PopUpAnchor が focusManager を適切に設定しないことでした。このようなインターフェースを実装すると、問題はなくなります。

ソリューションのヒントとなったこのブログ投稿を読むことができます。

于 2012-09-10T11:53:29.793 に答える
0

多くの実験/方法を行った後、問題はポップアップコンポーネントの親コンテナーが原因であると結論付けました。

Spark の Group/VGroup/HGroup を使用すると、この問題は残りますが、spark Panel/SkinnableContainer で親コンテナーを変更すると、問題は解決します。

自分で試して楽しんでください。

于 2012-06-08T11:00:56.107 に答える