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