2011-01-26 3 views
3

해제 경고 하나 개 대신에 MXML 코드에서

<fx:Script> 
    public var data:ArrayCollection = new ArrayCollection(); 
</fx:Script> 
<s:DataGroup dataProvider="{data}" /> 

나는 경고를 받고 있어요 이 경우 데이터 공급자가 변경되지 않으며이 경고를 표시하지 않으려 고하지만 완전히 비활성화하지 않으려는 경우 모든 프로젝트에서 -show-binding-options=false은 옵션이 아닙니다.

한 곳에서만 경고를 사용하지 않도록 설정하는 방법은 무엇입니까? 전체 파일에 대해 사용하지 않도록 설정하는 것은 좋지 않지만 허용됩니다.

+0

지금까지 좋은 대답이 아닙니다. [Bindable]을 추가하는 것은 잔인하며 항상 가능한 것은 아닙니다. – BrunoJCM

답변

2

data 변수를 바인드 가능하게 만드는 것은 어떻습니까? 뭔가 같은 대신 당신이 <fx:Declarations></fx:Declarations>를 사용할 수 <fx:Script></fx:Script>를 사용

<fx:Script> 
    [Bindable] 
    public var data:ArrayCollection = new ArrayCollection(); 
</fx:Script> 
<s:DataGroup dataProvider="{data}" /> 
+0

그게 내가 시도한 첫번째 일 이었어. 일하지 않았어. – grep

+0

흥미 롭다. 나는 방금 위에서 쓴 코드와 [Bindable] 메타 데이터 태그를 추가하고 제거한 깨끗한 프로젝트를 열었다. 추가 한 후 경고가 사라졌습니다. 코드의 큰 스 니펫을 게시 할 수 있습니까? – martineno

0

. 그 MXML 요소로 선언 된 오브젝트는, 암묵적으로 바인드 가능합니다. 여기에 귀하의 코드는 다음과 같이 표시됩니다 방법은 다음과 같습니다

<fx:Declarations> 
    <s:ArrayCollection id="data" /> 
</fx:Declarations> 

<s:DataGroup dataProvider="{data}" /> 

은 또한 훨씬 더 읽기된다 및 ActionScript와 MXML의 어떤 조합이 없습니다. 컬렉션이 public으로 선언되었으므로 ActionScript를 [Bindable]과 함께 사용할지 또는 MXML을 사용할지 여부가 달라집니다.

BTW에서는 ActionScript를 MXML과 완전히 분리하는 것이 더 일반적입니다. 예를 들어 내 프로젝트에서 각 MXML 구성 요소에 대해 별도의 ActionScript 파일을 <NameOfComponent>Includes.as 형태로 만듭니다.

관련 문제