Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex viewstack导致错误1065变量未定义问题?_Apache Flex_Flash_Flex3_Adobe - Fatal编程技术网

Apache flex viewstack导致错误1065变量未定义问题?

Apache flex viewstack导致错误1065变量未定义问题?,apache-flex,flash,flex3,adobe,Apache Flex,Flash,Flex3,Adobe,我有一个flex应用程序,左侧有一个树控件,右侧有一个viewstack,当有人选择树时,它会根据树的XML的隐藏节点值加载命名的viewstack。 但它抛出了一个错误1065变量,该变量未在上次浏览器刷新/重新加载时工作的viewstack上定义。它与特定的viewstack没有关系,从我可以看出,它似乎只是在某些渲染事件上抛出了错误。 我尝试在viewstack上使用creationpolicy=“all”,但似乎没有任何帮助 public function treeChanged(eve

我有一个flex应用程序,左侧有一个树控件,右侧有一个viewstack,当有人选择树时,它会根据树的XML的隐藏节点值加载命名的viewstack。 但它抛出了一个错误1065变量,该变量未在上次浏览器刷新/重新加载时工作的viewstack上定义。它与特定的viewstack没有关系,从我可以看出,它似乎只是在某些渲染事件上抛出了错误。 我尝试在viewstack上使用creationpolicy=“all”,但似乎没有任何帮助

public function treeChanged(event:Event):void {

            selectedNode=Tree(event.target).selectedItem as XML;
            //trace(selectedNode.@hidden);
            //Alert.show(selectedNode.@hidden.toString() + " *");

            if(selectedNode.@hidden.toString() == '' || selectedNode.@hidden.toString() == null){
                //Alert.show("NULL !");
                return;
            }


            mainviewstack.selectedChild = Container(mainviewstack.getChildByName(selectedNode.@hidden.toString())); //Container(mainviewstack.getChildByName(selectedNode.@hidden));

如果我在getchildbyname选项之前添加了一个警报框,那么viewstack有时间渲染,一切正常,因此我认为应用程序没有给它足够的时间加载viewstack?

错误到底发生在哪里?你有跟踪记录吗?在哪里注册事件侦听器
treeChanged()

您可以尝试在FlexEvent.CREATION\u COMPLETE的事件侦听器中添加事件侦听器。到那时,所有组件都应该已经初始化

您添加事件侦听器的方式在我看来是正确的,但我不确定时间安排。下面是一个添加事件监听器以完成创建的示例(假设画布是您的包含元素):



请不要说我没有测试过这个,我只是在路上写下来。有些名称可能有误,但您应该会有正确的想法。

错误发生在mainviewstack.selectedChild=Container(mainviewstack.getChildByName(selectedNode.@hidden.toString())//容器(mainviewstack.getChildByName(selectedNode.@hidden));我在这里注册了树更改,你能举个例子说明我如何使用FlexEvent.creation complete吗?我也在使用flex sdk 3.0,我应该升级它吗?ReferenceError:Error#1065:未定义变量。在mx.utils::DescribeTypeCache$/describeType()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\utils\DescribeTypeCache.as:95]在mx.utils::ObjectUtil$/getClassInfo()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\utils\ObjectUtil.as:838]在mx.controls::DataGrid/generateCols()[C:\autobuild\3.4.0刚刚升级到sdk 3.4.1,应用程序加载时发生错误仍然存在此错误问题?非常令人沮丧,我删除了actionscript中所有调用的引用并重新编译,但在应用程序加载时仍然出现此错误?
<mx:Canvas creationComplete="onCreationComplete">
    <mx:Script><![CDATA[
            private function onCreationComplete():void {
                tree.addEventListener(TreeEvent.Change, treeChange)
            }
        ]]>
    </mx:Script>
    <mx:Tree id="tree" ... />
</mx:Canvas>