Flex 3: TypeError # 2007 & Deeplinking - PullRequest
       16

Flex 3: TypeError # 2007 & Deeplinking

0 голосов
/ 25 сентября 2010

Я получаю ошибку Flex # 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]

Я пытаюсь заставить работать диплинкинг для правильной работы.Bhasker Chari на форуме 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, преобразовываю его в строку, заменяю черту подчеркиванием, преобразуюэто к контейнеру, и используйте это, чтобы установить selectedChild на mainViewStack.

Но, когда он инициализируется, он говорит, что нет дочернего параметра.Как я могу решить эту проблему?

Спасибо.

-Laxmidi

1 Ответ

0 голосов
/ 25 сентября 2010

Хорошо,

Я понял это.Мне нужно добавить:

if (t! = Null) {mainViewStack.selectedChild = t} else {mainViewStack.selectedIndex = 0}

Дочерние объекты еще не созданы.

Спасибо.

-Laxmidi

...