문제

플렉스의 Tilelist에 표시하고 싶은 이미지가 있습니다. Tilelist 치수는 N 행의 2 열입니다. 내가하고 싶은 것은 첫 번째 항목 (행 1, 열 1)을 비우고 클릭 할 수없고 클릭 할 수없고 열 2 열에서 내 항목을 표시하는 것입니다. 가능합니까?

또한 동일한 Tilelist에 대한 클릭 이벤트를 만들 때 궁금합니다. 클릭 된 요소의 색인을 얻는 방법이 있습니까?

매우 감사합니다!
중.

도움이 되었습니까?

해결책

좋은 질문. 누군가가 더 우아한 솔루션을 제공 할 것이라고 확신하지만 간단한 접근 방식은 위치 0의 데이터 프로보에 널을 추가하고 항목 렌더러를 대체 콘텐츠를 표시하여 Null을 처리하거나 모두.

클릭 된 요소의 인덱스를 추출하려면 사용할 수있는 ListEvent 객체에 몇 가지 속성이 있습니다-event.currentTarget.SelectedIndex (또는 multi-selection을 사용하는 경우), event.columnIndex 및. RowIndex 또는 event.Itemrenderer, Tilelist의 ItemrenderertoIndex 속성과 함께 사용할 수 있습니다.

다음은 다음과 같은 두 가지 접근 방식을 보여주는 빠른 앱 코드입니다.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">

    <mx:Script>
        <![CDATA[

            import mx.controls.Alert;
            import mx.events.ListEvent;
            import mx.collections.ArrayCollection;

            private var dpSource:Array = [
                null, 
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"}, 
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"},
                {src: "http://turbonerd.com/media/images/roaming/t/20091017225355.jpg"}
            ];      

            [Bindable]
            private var dp:ArrayCollection = new ArrayCollection(dpSource);

            private function myList_itemClick(event:ListEvent):void
            {
                Alert.show("You clicked the item at position (" + event.columnIndex + ", " + event.rowIndex + "), which is item " + myList.itemRendererToIndex(event.itemRenderer).toString() + " in the list.");
            } 

        ]]>
    </mx:Script>

    <mx:TileList id="myList" dataProvider="{dp}" itemClick="myList_itemClick(event)">
        <mx:itemRenderer>
            <mx:Component>
                <mx:Canvas>

                    <mx:Script>
                        <![CDATA[

                            override public function set data(value:Object):void
                            {
                                super.data = value;
                            }

                        ]]>
                    </mx:Script>

                    <mx:Image source="{data.src}" width="100" height="60" visible="{data != null}" />
                    <mx:Label text="No item!" visible="{data == null}" />

                </mx:Canvas>
            </mx:Component>
        </mx:itemRenderer>
    </mx:TileList>

</mx:Application>

도움이되기를 바랍니다! 당신이 있다면 질문으로 다시 게시하십시오.

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