Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Проблема с HorizontalList при прокрутке (http://www.flasher.ru/forum/showthread.php?t=103190)

MaxCmd 31.10.2007 15:22

Проблема с HorizontalList при прокрутке
 
Здраствуйте.

Flash Player выдает такая ощибка:
"TypeError: Error #1009: Cannot access a property or method of a null object reference.at components::SlideThumbView/set data()[D:\MaxCmd\Projects\Flex\Prj\components\SlideThumbView.mxml:23]".

Когда элементы внутри HorizontalList выходит из видимой области, появляется скроллинг. Если будем двигать скроллинг до конца(первые элементы будут не видны) и потом передвигать обратно появляется ощибка описанная выше. Дальше первые элементы исчезают навсегда. Отключить скроллинг не решал проблему(Гугл тоже :) ).
Пробовал TileList, у него не было таких проблем, но я не мог его сделать однострочный(maxRows="1", direction="HORIZONTAL", verticalScrollPolicy="off" не помогает).

У вас есть какие-то варианты/решения и тд? Буду благодарен. Заранее спасибо.

Основной код такой:
Код:

<mx:Script>
<![CDATA[
[Bindable]
public var slides:ArrayCollection;
]]>
</mx:Script>

<mx:HorizontalList id="slidesList" dataProvider="{slides}"
        itemRenderer="components.SlideThumbView" width="100%" height="100%"
        left="10" right="10" top="10" bottom="10" backgroundAlpha="0"
        borderThickness="0" verticalScrollPolicy="off"/>

Рендерер:
Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="86" height="60" horizontalAlign="center" verticalAlign="middle" horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:Script>
<![CDATA[
        [Bindable]
        private var _data:Object;
        override public function get data():Object
        {
                return _data;
        }
        override public function set data(value:Object):void
        {
                if (value == null) return ;
                //super.data = value;
                _data = value;
                if (_data.loaded)
                {
                        thumbImg.source = "";
                        var bmp:Bitmap = new Bitmap(_data.bitmap.bitmapData);
                        bmp.width = this.width - 6;
                        bmp.height = this.height;
                        thumbImg.addChild(bmp);
                        bmp.x = - bmp.width / 2;
                        bmp.y = - bmp.height / 2;
                }
        }
]]>
</mx:Script>
<mx:Image source="@Embed('/img/presentation/ajax-loader.gif')" id="thumbImg" horizontalAlign="left" verticalAlign="top"/>
</mx:VBox>



Часовой пояс GMT +4, время: 16:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.