PDA

Просмотр полной версии : List+itemRenderer непонятное явление


kitsela
31.10.2010, 02:00
И так создаю ліст в каторий вкладиваю свой компонент

<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var arr_country:ArrayCollection = new ArrayCollection([{ui:122,Name:"Україна"},{ui:123, Name:"Росія"},{ui:124, Name:"Англія"}]);
]]>
</mx:Script>
<mx:List dataProvider="{arr_country}" width="100%" height="400">
<mx:itemRenderer>
<mx:Component>
<mx:VBox width="100%" verticalAlign="top">
<ns1:Viewer setUi="{data.ui}">
</ns1:Viewer>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:List>


затам с помощью creationComplete="ViewerAdd()" визиваю функцию ViewerAdd()



<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="ViewerAdd()" width="500" height="100" borderStyle="solid" borderThickness="3" cornerRadius="10">

<mx:Script>
<![CDATA[

import mx.controls.Alert;

public var setUi:Number = new Number();


public function ViewerAdd():void{
Alert.show(setUi.toString());

}

]]>
</mx:Script>

</mx:Canvas>



Работает,... на сцене появляетса 3 компонента, а вот Alert срабативает 4 раза......
2 последних видают одно и тоже....помогите разобрастса откуда еще 1 раз

litebox
01.11.2010, 14:59
Сталкивался с аналогичной проблемой, причем и в mx:TileList и в s:List... Видимо это особенности внутренней логики работы компонентов... Такое ощущение, что первый itemRenderer создается несколько раз, при чем их кол-во у меня варьировалось от 1 до 3

dj_Kayot
06.11.2010, 03:17
Скорее всего это запасные итемы. на случай если произойдет скролинг листа

ShockWave512
07.11.2010, 01:08
Скорее всего это запасные итемы. на случай если произойдет скролинг листа
ага, примерно так и есть,
еще учитывайте что сеттер data тоже не по одному разу может вызываться

kitsela
09.11.2010, 02:38
сечас вилез глюк, при поиске виводит результат, если 4 результата, то первий раз нормально, а если при следуещем поиске также 4 результата, то один вобще не отображаетса, а 2 однакови........посоветуйте, как решить проблему..

kitsela
17.11.2010, 02:03
и так пришед к тому что надо следующий код перевести на AS3
помогите плиз
<mx:List dataProvider="{love}" width="592" height="2000" x="5" y="50" id="sl">
<mx:itemRenderer>
<mx:Component>
<mx:VBox width="100%" verticalAlign="top">
<ns2:userViewer contact="{data}">
</ns2:userViewer>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:List>