2010-09-25 67 views
0

我正在收到Flex错误#2007,当应用程序启动时。Flex 3:TypeError#2007和深层链接

TypeError: Error #2007: Parameter child must be non-null. 
    at flash.display::DisplayObjectContainer/getChildIndex() 
    at mx.core::Container/getChildIndex()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:2411] 
    at mx.containers::ViewStack/set selectedChild()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\containers\ViewStack.as:557] 
    at property/parseUrl()[/Users/myname/Documents/Flex Builder 3/property/src/property.mxml:8803] 
    at property/initBrowserManager()[/Users/myname/Documents/Flex Builder 3/property/src/property.mxml:8749] 
    at property/___property_Application1_creationComplete()[/Users/myname/Documents/Flex Builder 3/property/src/property.mxml:19] 

我试图让deeplinking正常工作。 Bhasker沙里对Adobe Flex的论坛是一种足以帮助我用下面的代码:

private function parseUrl(e:BrowserChangeEvent = null):void { 


    var o:Object = URLUtil.stringToObject(browserManager.fragment); 

    var j:Object = o.view; 

    var f:String = String(j); 

    var c:String = f.replace(/-/g,"_"); 

    var t:Container = mainViewStack.getChildByName(c) as Container; 

    mainViewStack.selectedChild = t; 
    } 

基本上,我拿browserManager.fragment,将其转换为字符串,替换用下划线破折号,将其转换为一个容器,并使用它在mainViewStack上设置selectedChild。

但是,它初始化时,它说没有子参数。我怎么解决这个问题?

谢谢。

-Laxmidi

回答

0

好吧,

我想通了。我需要添加:

如果(T!= NULL){mainViewStack.selectedChild = T} 其他{mainViewStack.selectedIndex = 0}

孩子尚未建立,但。

谢谢。

-Laxmidi