我想要在Flex中的TileList中顯示一些圖像。我的TileList尺寸是2列n行。我想要做的是將第一個項目(第一行,第一列)顯示爲空且不可點擊,並開始在第1行第2列顯示我的項目。這可能嗎?Flex TileList起始偏移量和點擊處理程序
我也想知道當我爲同一個TileList創建點擊事件時,有沒有辦法獲得點擊元素的索引?
非常感謝!
m。
我想要在Flex中的TileList中顯示一些圖像。我的TileList尺寸是2列n行。我想要做的是將第一個項目(第一行,第一列)顯示爲空且不可點擊,並開始在第1行第2列顯示我的項目。這可能嗎?Flex TileList起始偏移量和點擊處理程序
我也想知道當我爲同一個TileList創建點擊事件時,有沒有辦法獲得點擊元素的索引?
非常感謝!
m。
好問題。我確定有人會提供更優雅的解決方案,但是一個簡單的方法可能只是在位置0處向dataProvider添加null,並讓itemRenderer通過顯示某種替代內容來處理null,或者在所有。
要提取被點擊元素的索引,您可以使用的ListEvent對象有幾個屬性 - event.currentTarget.selectedIndex(或event.currentTarget.selectedIndices,如果您使用的是多選),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>
希望它能幫助!如果你有他們的問題,請回復問題。
非常感謝!你用'null'作爲第一個項目和處理itemRenderer的例子很棒!就像顯示來自TileList的選定索引一樣!非常感謝 ;-) – errata 2009-10-23 13:36:57