flex 型が見つからないか、コンパイル時定数ではありません。
2011/07/15
「ComboBox」をカスタムコンポーネントってヤツにしていったら現れたエラーが下記。
1046: 型が見つからないか、コンパイル時定数ではありません : ArrayCollection。
解決方法としては下記
「import mx.collections.ArrayCollection;」を追加。
メモ
カスタムコンポーネントってヤツを知ったので、あちこちで使っている「ComboBox」を置換えしていってた。
途中まではエラーも無く順調だったのに現れたのが上述のエラー。
何をどう調べたら良いかもわからないので…聞いてみた。
「s:Application」の「fx:script」の外で「ArrayCollection」を使っていたからも今までは問題なかった。
でも、カスタムコンポーネントを使うことによって、「s:Application」の「fx:script」の外で「ArrayCollection」が使われなくなった。
それが原因。
でも、カスタムコンポーネントを使うことによって、「s:Application」の「fx:script」の外で「ArrayCollection」が使われなくなった。
それが原因。
対応としては「fx:script」の中で「ArrayCollection」を使える設定が必要。
具体的には「import mx.collections.ArrayCollection;」。
ってな感じで解決してくれた。
「import~」って入力が面倒だったら「fx:script」の中で「new ArrayCollection;」を記載すれば勝手に「import mx.collections.ArrayCollection;」が補完される。
作業時のソース
元のソース
カスタムコンポーネントを使う前。
- <s:Application ~>
- <fx:Script>
- private function changedSelectComboBox(ac:ArrayCollection, value:String):int
- {
- ~~~
- }
- </fx:Script>
- <fx:Declarations>
- </fx:Declarations>
- <s:ComboBox>
- <s:dataProvider>
- <s:ArrayCollection>
- <s:source>
- <fx:Object label="1" data="1" />
- <fx:Object label="0" data="0" />
- </s:source>
- </s:ArrayCollection>
- </s:dataProvider>
- </s:ComboBox>
- </s:Application>
エラーが出たソース
「s:ComboBox」をカスタムコンポーネントにしてみたら、エラーが出た。
※「s:ArrayCollection」が消えたのがエラーの原因かな。
- <s:Application ~>
- <fx:Script>
- private function changedSelectComboBox(ac:ArrayCollection, value:String):int
- {
- ~~~
- }
- </fx:Script>
- <fx:Declarations>
- </fx:Declarations>
- <local:cpComboBox />
- </s:Application>
修正ずみソース
- <s:Application ~>
- <fx:Script>
- import mx.collections.ArrayCollection;
- private function changedSelectComboBox(ac:ArrayCollection, value:String):int
- {
- ~~~
- }
- </fx:Script>
- <fx:Declarations>
- </fx:Declarations>
- <local:cpComboBox />
- </s:Application>