2009-08-04 11 views
0

オブジェクトリテラルで定義された単純なオブジェクトがあり、このオブジェクトに割り当てられた2つの関数があります。関数の中で、私はグローバル変数にアクセスしようとすると、それは不定になるだけです。 Flexデバッガは、変数がスコープツリーのすぐ上にあることを伝えます。オブジェクトは変数のスコープツリーを検索しません

はい、私は「this」を使ってThingにアクセスできますが、それは私の範囲の問題を解決しません。

プロジェクトFlexコンパイラの設定:Flex SDK 3.4、Flash Player 10.xが必要です。

例:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="Thing.bling();"> 

    <mx:Script> 
     <![CDATA[ 
      var Thing:Object = { 
       doStuff: function():void { 
        trace(blah); //blah is undefined 
       }, 
       bling: function():void { 
        Thing.doStuff(); //Thing is undefined 
       }, 

      }; 
     ]]> 
    </mx:Script> 

    <mx:Panel id="blah"> 

    </mx:Panel> 
</mx:Application> 

答えて

1

私はあなたの悩みが何であるかわからないんだけど、私はカットし、新しいFlexプロジェクトにあなたの正確なコードを貼り付け、シング宣言で単純な構文エラー(余分な末尾のコンマにもかかわらず、 )それは私が期待するものをトレースする:

Test0.blah 

(私のプロジェクト名がテストされ、パネル何とかが第一の目的であることを考えると)。

私には、Flash Player 10,0,22,87

編集上のFlex 3の両方を試してみました、その後のFlex 3.3を使用する:私はコメントの指示に従うことによって、プロジェクトのプロパティを変更した場合、私は今再現できる

のFlex Builder - > [プロパティ] - > [Flexコンパイラは - > Flash Playerのバージョンを要求する - >これは動作を設定して10.0.0

は、Flex 3.0には表示されませんが、は3.2、3.3および3.4​​に表示されません。

これはバグですので、回避する方法を見つける必要があります。

+0

私のためにブランドの新しいプロジェクトがエラー#1069を与える:プロパティ::シングオビには見られませんデフォルト値はありません。 Flex 3.4での使用Flash Player 10.0.0 – seanmonstar

+0

SDK 3.4.0.6955をダウンロードするだけで、正しいTest0.blahが表示されます。 Flex Builderを使用していますか?唯一の違いは、Flash Playerのバージョンです。申し訳ありませんが、私は再現できない場合、私はあなたのために他にはありません。 –

+0

私はFlex Builderを使用しています。プロジェクト - >フレックスコンパイラで、Flash Player 10以上が必要ですか? Flash Player 9がチェックされていれば動作しますが、10が必要です。 – seanmonstar

0

はただの推測

  var Thing:Object; 
      Thing = { 
        doStuff: function():void { 
          trace(blah); //blah is undefined 
        }, 
        bling: function():void { 
          Thing.doStuff(); //Thing is undefined 
        }, 

      }; 

してみてください...しかし、私は、これはこれで問題が解決するかどうかを試してみる... neccessaryあまりにも酔って疲れにいた多くの問題を経験した...しかし、のためにあなた、それは夕方/夜のほんの始まりでなければなりません...:D

greetz

back2dos

+0

これは、コンパイラエラーをスローする – seanmonstar

関連する問題