I am testing a programmatic scrolling of TileGroup. Either I am doing
something wrong or there is bug here. I am providing code for testing.
When you run it you will see rows of buttons and a scroller. Click on
button 1 and start tabbing. When it reaches button 4 and you tab again it
will go to button 5 which is in the next row that is not fully shown but no
scrolling will occur. Going to the next button (number 6) will scroll it
up. But it should have scrolled it when a focus was moved to the number 5.
Hope, it's clear.
<?xml version="1.0"?>
<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" height="80"
<fx:Script>
<![CDATA[
import mx.core.ILayoutElement;
import mx.core.IVisualElement;
private function init():void
for (var i:int=0;i<tl.numElements;i++)
var element:ILayoutElement = tl.getElementAt(i);
element.addEventListener(KeyboardEvent.KEY_DOWN, onFocusOut, false, 0,
true);
private function onFocusOut(event:KeyboardEvent):void
if (event.keyCode == 9)
ensureVisible(event.target as Button);
private function ensureVisible(target:Button):void
trace(target.label);
scroller.ensureElementIsVisible(target as IVisualElement);
]]>
</fx:Script>
<s:Scroller height="100%" id="scroller">
<s:VGroup height="100%">
<s:TileGroup horizontalGap="1" verticalGap="1" creationComplete="init()"
requestedColumnCount="4" id="tl">
<s:Button label="1" width="50" height="50" />
<s:Button label="2" width="50" height="50" />
<s:Button label="3" width="50" height="50" />
<s:Button label="4" width="50" height="50" />
<s:Button label="5" width="50" height="50" />
<s:Button label="6" width="50" height="50" />
<s:Button label="7" width="50" height="50" />
<s:Button label="8" width="50" height="50" />
<s:Button label="9" width="50" height="50" />
</s:TileGroup>
</s:VGroup>
</s:Scroller>
</s:Application>
Thanks
something wrong or there is bug here. I am providing code for testing.
When you run it you will see rows of buttons and a scroller. Click on
button 1 and start tabbing. When it reaches button 4 and you tab again it
will go to button 5 which is in the next row that is not fully shown but no
scrolling will occur. Going to the next button (number 6) will scroll it
up. But it should have scrolled it when a focus was moved to the number 5.
Hope, it's clear.
<?xml version="1.0"?>
<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" height="80"
<fx:Script>
<![CDATA[
import mx.core.ILayoutElement;
import mx.core.IVisualElement;
private function init():void
for (var i:int=0;i<tl.numElements;i++)
var element:ILayoutElement = tl.getElementAt(i);
element.addEventListener(KeyboardEvent.KEY_DOWN, onFocusOut, false, 0,
true);
private function onFocusOut(event:KeyboardEvent):void
if (event.keyCode == 9)
ensureVisible(event.target as Button);
private function ensureVisible(target:Button):void
trace(target.label);
scroller.ensureElementIsVisible(target as IVisualElement);
]]>
</fx:Script>
<s:Scroller height="100%" id="scroller">
<s:VGroup height="100%">
<s:TileGroup horizontalGap="1" verticalGap="1" creationComplete="init()"
requestedColumnCount="4" id="tl">
<s:Button label="1" width="50" height="50" />
<s:Button label="2" width="50" height="50" />
<s:Button label="3" width="50" height="50" />
<s:Button label="4" width="50" height="50" />
<s:Button label="5" width="50" height="50" />
<s:Button label="6" width="50" height="50" />
<s:Button label="7" width="50" height="50" />
<s:Button label="8" width="50" height="50" />
<s:Button label="9" width="50" height="50" />
</s:TileGroup>
</s:VGroup>
</s:Scroller>
</s:Application>
Thanks