0

アプリの起動時に、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]

ディープリンクを適切に機能させようとしています。Adobe Flex フォーラムの Bhasker Chari は、親切にも以下のコードで私を助けてくれました。

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 を設定します。

しかし、初期化すると、子パラメータがないと言われます。どうすればこの問題を解決できますか?

ありがとうございました。

-ラクシュミディ

4

1 に答える 1

0

わかった、

私はそれを考え出した。追加する必要があります:

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

子供たちはまだ作成されていませんでした。

ありがとうございました。

-ラクシュミディ

于 2010-09-25T14:40:23.787 に答える