tecnicas software seguridad que pruebas prueba plan istqb funcionales ejemplos casos caso actionscript-3 flex flex4.5 itemrenderer flex4.7

actionscript 3 - software - Lista con renderizador de elementos multilínea(envoltura de palabras): ¿cómo desplazarse hacia abajo? Con el caso de prueba y capturas de pantalla



que es un plan de pruebas (1)

En una aplicación web Flex 4, intento utilizar spark.components.List para chatear (por diversas razones, ya me funciona bien en una aplicación móvil Flex), pero debido a que utilizo un renderizador de elementos que puede ser multilínea ( es decir, envuelve líneas demasiado largas) Tengo el problema, que no puedo desplazar la lista hasta su parte inferior llamando a su método ensureIndexIsVisible :

He preparado una prueba muy simple. Estos son solo 2 archivos, que funcionarán instantáneamente, cuando los coloque en un nuevo proyecto Flex en Flash Builder -

MyApp.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" applicationComplete="init()"> <fx:Script> <![CDATA[ import mx.collections.ArrayList; private static const MONTHS:ArrayList = new ArrayList([ "1 January is a beautyful month", "2 February is a very very very very very very very very very very very very very very very beautyful month", "3 March is a beautyful month", "4 April is a beautyful month", "5 May is a beautyful month", "6 June is a beautyful month", "7 July is a beautyful month", "8 August is a beautyful month", "9 September is a beautyful month", "10 October is a beautyful month", "11 November is a beautyful month", "12 December is a beautyful month" ]); private function init():void { myList.ensureIndexIsVisible(MONTHS.length - 1); } ]]> </fx:Script> <s:List id="myList" horizontalCenter="0" verticalCenter="0" width="100" height="300" dataProvider="{MONTHS}" itemRenderer="MyRenderer" horizontalScrollPolicy="off"> <s:layout> <s:VerticalLayout variableRowHeight="true" horizontalAlign="justify"/> </s:layout> </s:List> </s:Application>

MyRenderer.mxml:

<?xml version="1.0" encoding="utf-8"?> <s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark" autoDrawBackground="false"> <fx:Script> <![CDATA[ [Bindable] public var myColor:uint = 0xFFFFFF; override public function set data(value:Object):void { var label:String = value as String; labelDisplay.text = label; if (label.indexOf("June") >= 0) myColor = 0xFFEEEE; else if (label.indexOf("July") >= 0) myColor = 0xEEFFEE; else if (label.indexOf("August") >= 0) myColor = 0xEEEEFF; else myColor = 0xFFFFFF; } ]]> </fx:Script> <s:Rect width="100%" height="100%"> <s:fill> <s:SolidColor color="{myColor}" /> </s:fill> </s:Rect> <s:Label id="labelDisplay" width="100%" left="4" top="4" /> </s:ItemRenderer>

Por favor, eche un vistazo y aconseje cómo desplazar la lista hasta su parte inferior.

¿Debería de alguna manera usar myList.dataGroup para eso? O tal vez el layout.verticalScrollPosition ?

También probé callLater(myList.ensureIndexIsVisible, [MONTHS.length - 1]) pero eso no ayudó.


Encontré la respuesta yo mismo en el blog de Flexponential Desplazamiento al final de una lista de chispa :

public static function scrollToBottom(list:List):void { // update the verticalScrollPosition to the end of the List // virtual layout may require us to validate a few times var delta:Number = 0; var count:int = 0; while (count++ < 10) { list.validateNow(); delta = list.layout.getVerticalScrollPositionDelta(NavigationUnit.END); list.layout.verticalScrollPosition += delta; if (delta == 0) break; } }