문제

나는 무작위로 크기의 항목이 있습니다. 리피터 구성 요소에 각 항목에 대해 하나의 레이블을 표시하고 싶습니다. 나는 그들이 5 개의 열과 필요에 따라 많은 행이있는 그리드 레이아웃으로 표시되기를 원합니다. Flex / Actionscript에서 어떻게합니까?

어쩌면 내가 아직 보지 못했던 또 다른 방법이있을 수 있으므로 어떤 제안도 감사합니다. 감사!

도움이 되었습니까?

해결책

리피터 대신 타일 목록을 사용합니다. 예는 다음과 같습니다.

http://blog.flexexamples.com/2007/09/28/using-the-flex-tilelist-classs-new-datachangeeffect-style-in-flex-3/

다른 팁

한 달 늦었지만 Tilelist가 나에게 줄 수없는 특정 기능이 필요한 상황에 처해있었습니다.여기 내 질문을 참조하십시오


내 리피터 그리드의 너비는 900 픽셀입니다. 각 열은 너비가 300px이고 각 행은 높이가 31 픽셀이며 그 사이에 1 픽셀 흰색 공백이 있습니다. 총 3 개의 열.

코드:

<mx:Repeater id="rptCities" dataProvider="{citiesArr}">
<mx:Canvas label="{rptCities.currentItem.city}" x="{rptCities.currentIndex%3 * 300}" y="{int(rptCities.currentIndex/3) * 32}" width="300" height="31">
<mx:Label text="{rptCities.currentItem.city}"/>
</mx:Canvas>
</mx:Repeater>

그래서이 코드를 어떻게 읽습니까?

시장 부분은 리피터 내 캔버스에서 처리됩니다. 보시다시피 각 캔버스는 폭 300px (각 열의 너비)와 높이가 31px입니다. 모듈로를 사용하면 요소의 x- 위치를 정의 할 수 있습니다.

DataProvider에 6 개의 항목이 있다고 가정 해 봅시다.

x = "{rptcities.currentindex%3 * 300}"

첫 번째 항목 : 0%3 == X- 위치 : 0*300

두 번째 항목 : 1%3 == X- 위치 : 1*300

세 번째 항목 : 2%3 == X- 위치 : 2*300

전면 항목 : 3%3 == X-Position : 0*300

그것은 요소의 x- 위치를 처리합니다. 내가 32를 1px 공간을 원하기 때문에 32를 일정한 값으로 정의한 요소의 y-position. 숫자를 정수로 변환하면 반올림 값을 얻습니다 (이탤릭체의 값은 숫자 값입니다. 정상 FontType는 Flex가 고려하는 정수입니다)

y = "{int (rptcities.currentIndex/3) * 32}"

첫 번째 항목 : 0/3 == y-position : 0*32

두 번째 항목 : 1/3 == y-position : 0*32 (0.33)

세 번째 항목 : 2/3 == y-position : 0*32 (0.66)

앞으로 항목 : 3/3 == y-position : 1*32

리피터가 네 번째 항목에있을 때 x-와 y-position = x : 0 및 y : 32는 두 번째 '행'에 있습니다.


다소 큰 대답에 대해 죄송합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top