2013-01-01 4 views
0

에서 렌더러를 얻습니다. 지정된 점에서 항목을 가져 오기 위해 스파크 타일 목록에 내장 된 메서드가 있습니까?점 타일 레이아웃 - 점

감사합니다 @ www.Flextras.com으로

+0

"포인트"는 무엇을 의미합니까? x, y 좌표를 말하고 있습니까? 또는 다른 것? 지금까지 내가 아는 한 x, y 좌표를 기반으로 항목을 가져올 방법이 없습니다. 하지만 ASDocs와 소스 코드를 검토 할 수는 있습니다. – JeffryHouser

답변

1

유용 할 수있는 소스 코드를 찾고 제안했다. TileLayout에는 사용자가 지정하는 Point에 가장 가까이 위치한 요소의 인덱스를 제공하는 getElementNearestScrollPosition()이라는 메서드가 있습니다. 그러나이 메서드는 Flex의 mx_internal 네임 스페이스에 숨겨져 있으므로 ASDocs에서 제외됩니다.

다음은 작동하는 것처럼 보이는 간단한 예입니다. itemRenderer가 표시되지 않습니다.

Main.mxml : 나는 로컬 및 글로벌 좌표 사이에 변환을하고 있어요

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:local="*"> 

    <fx:Script> 
     <![CDATA[ 
      import mx.core.mx_internal; 

      use namespace mx_internal; 

      protected function list1_clickHandler(event:MouseEvent):void 
      { 
       var localPointInList:Point = list.globalToLocal(new Point(event.stageX, event.stageY)); 
       trace(tileLayout.getElementNearestScrollPosition(localPointInList)); 
      } 
     ]]> 
    </fx:Script> 

    <fx:Declarations> 
     <s:ArrayCollection id="foo"> 
      <fx:Object date="Jan 1, 2012"/> 
      <fx:Object date="Jan 1, 2013"/> 
      <fx:Object date="Jan 1, 2014"/> 
     </s:ArrayCollection> 
    </fx:Declarations> 

    <s:layout> 
     <s:HorizontalLayout /> 
    </s:layout> 

    <s:Button label="I'm a button"/> 

    <s:List id="list" dataProvider="{foo}" itemRenderer="TestRenderer" click="list1_clickHandler(event)"> 
     <s:layout> 
      <s:TileLayout id="tileLayout" requestedColumnCount="2" /> 
     </s:layout> 
    </s:List> 

</s:Application> 

참고. MouseEvent의 전역 좌표를 List의 좌표 공간으로 변환해야합니다. 또한이 변환을 테스트하기 위해 주 앱에 Button을 추가했습니다 ... 버튼의 존재로 인해 목록의 로컬 좌표 이 전체 좌표 인과 일치하지 않게됩니다. 목록이 원점 (0,0)에 배치 된 경우 좌표 공간 간의 변환은 필요하지 않지만 ... 실제 애플 리케이션에서는 거의 발생하지 않습니다.

+1

네임 스페이스로 된 메서드에 액세스하기 위해 클래스를 확장하지 않았다고 생각합니다. 'mx_internal' 네임 스페이스를 가져 오기 만하면됩니다. – RIAstar

+0

평소와 같이 선생님이 옳습니다! 불필요한 클래스를 제거하기 위해 내 대답 편집 :) –

+0

Sunil에게 감사드립니다. 훌륭한 Sunlight 덕분에 왜 getElementNearestScrollPosition이라는 getElementUnderPoint (p : Point)와 같은 이름을 갖게되었는지 궁금합니다. – Eran