Форум программистов, компьютерный форум, киберфорум
Наши страницы
ActionScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Heidy
0 / 0 / 0
Регистрация: 03.07.2013
Сообщений: 5
#1

Создание галлереи изображений

09.07.2013, 16:28. Просмотров 587. Ответов 4
Метки нет (Все метки)

Подскажите, как создать небольшую галерею изображений, которая будет пролистываться по нажатию кнопок слева-справа(изображения соответственно пролистываються налево\направо соответственно)
Вот примерно как в данном приложении в ВК:
Кликните здесь для просмотра всего текста
https://vk.com/app2857249_3028443?ref=9


8 картинок, видим с начало 6 - при нажатии стрелок прокручиваются изображения, два исчезает, на их место становятся другие по порядку

Добавлено через 3 часа 29 минут
накидал кое-что...теперь изображение по правой стрелке сменяется, но после одной отработки - крашится

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package
{
    import flash.display.Bitmap;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    
    /**
     * ...
     * @author Heidy
     */
    public class GameContainer extends Sprite
    {
        private var _oneelement:Array = [];
        private var _bitmapElement:Array = [new Bitmap(new Balda), new Bitmap(new Balls), new Bitmap(new Bubbles), new Bitmap(new Chess), new Bitmap(new Domino), new Bitmap(new Dots), new Bitmap(new Lines), new Bitmap(new Sudoku)];
        private var _elementButton:Button;
        private var _myText:TextField;
        private var _currentPage:int = 0;
        
        public function GameContainer()
        
        {
            var bg:Bitmap = new Bitmap(new Backgroundgame);
            
            addChild(bg);
            
            for (var i:int = 0; i < 6; ++i)
            {
                _oneelement[i] = new Sprite();
                _elementButton = new Button();
                _myText = new TextField();
                
                _oneelement[i].addChild(_bitmapElement[i]);
                addChild(_oneelement[i]);
                
                _oneelement[i].x = 120 + i % 3 * 200;
                _oneelement[i].y = 150 + int(i / 3) * 150;
                
                _elementButton.x = (_oneelement[i].width - _elementButton.width) / 2;
                _elementButton.y = (_oneelement[i].height - _elementButton.height) / 2;
                
                _oneelement[i].addChild(_elementButton);
                
                _myText.text = "Войти";
                _myText.autoSize = TextFieldAutoSize.CENTER;
                
                _myText.selectable = false;
                _myText.x = 0;
                _myText.y = 0;
                _oneelement[i].addChild(_myText);
            }
            
            var arrowLeft:Arrowleft = new Arrowleft;
            arrowLeft.x = 10;
            arrowLeft.y = 250;
            
            arrowLeft.addEventListener(MouseEvent.MOUSE_DOWN, onMouseFuck);
            
            addChild(arrowLeft);
            
            var arrowRight:Arrowright = new Arrowright;
            arrowRight.x = 760;
            arrowRight.y = 250;
            
            arrowRight.addEventListener(MouseEvent.MOUSE_DOWN, onMouseFuck2);
            
            addChild(arrowRight);
        
        }
        
        private function onMouseFuck2(e:MouseEvent):void
        {
            _currentPage++;
            for (var i:int = 0; i < 6; ++i)
            {
                
                _oneelement[i].removeChildAt(0);
                
                _oneelement[i].addChildAt(_bitmapElement[i + _currentPage], 0);
            }
            
            trace('ept');
        }
        
        private function onMouseFuck(e:MouseEvent):void
        {
            for (var i:int = 0; i < 6; ++i)
            {
                
                _currentPage++;
            }
            trace('ept');
        }
    
    }
 
}

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2013, 16:28
Ответы с готовыми решениями:

Разработка галлереи с подгрузкой файлов из папки
Здравствуйте я хочу создать галерею которая будет прокручивать все картинки из...

Загрузка изображений из галлереи
Как реализовать загрузку изображений из галереи при нажатии на кнопку? (Андроид...

Создание галлереи
Доброго времени суток Как можно реализовать галерею по принципу Igallery...

Создание формы для галлереи
Мне необходимо чтобы через форму &quot;pic&quot; было именем создаваемой директории куда...

Создание галлереи без шорткодов
Нужно чтобы у записи была своя фотогаллерея. Плагины которые смотрел сводятся...

4
Theoryofgames
253 / 237 / 50
Регистрация: 20.12.2011
Сообщений: 707
09.07.2013, 20:29 #2
Особо не вникал в то, что Вы написали, но возникает несколько вопросов:
1) Почему при нажатии на кнопку влево идет увеличение порядкового номера страницы и при этом не происходит никаких действий (по логике порядковый номер текущей страницы должен уменьшаться).
2) При нажатии на кнопку направо Вы меняете изображение, но не увеличиваете порядковый номер текущей страницы.
3) Вообще не очень хорошая практика удалять элемент по индексу (из списка отображения) не будучи уверенным, что тндекс верный. Есть шанс удалиться что-то не то. Я про removeChildAt(0).
0
Heidy
0 / 0 / 0
Регистрация: 03.07.2013
Сообщений: 5
10.07.2013, 11:49  [ТС] #3
3) Вообще не очень хорошая практика удалять элемент по индексу (из списка отображения) не будучи уверенным, что тндекс верный. Есть шанс удалиться что-то не то. Я про removeChildAt(0).
да, так все таки не стоит делать, исправил

Добавлено через 1 час 26 минут
немного переписал, теперь все поначалу работает, элементы меняются, но после отработки 2 раза - крашиться все равно:

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package
{
    import flash.display.Bitmap;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormatAlign;
    
    /**
     * ...
     * @author Heidy
     */
    public class GameContainer extends Sprite
    {
        private var _oneelement:Array = [];
        private var _bitmapElement:Array = [new Bitmap(new Balda), new Bitmap(new Balls), new Bitmap(new Bubbles), new Bitmap(new Chess), new Bitmap(new Domino), new Bitmap(new Dots), new Bitmap(new Lines), new Bitmap(new Sudoku)];
        private var _elementButton:Button;
        private var _myText:TextField;
        
        private var _currentPage:int = 0;
        
        public function GameContainer()
        
        {
            var bg:Bitmap = new Bitmap(new Backgroundgame);
            
            addChild(bg);
            
            for (var i:int = 0; i < 6; ++i)
            {
                _oneelement[i] = new Sprite();
                _elementButton = new Button();
                _myText = new TextField();
                
                _oneelement[i].addChild(_bitmapElement[i]);
                addChild(_oneelement[i]);
                
                _oneelement[i].x = 120 + i % 3 * 200;
                _oneelement[i].y = 150 + int(i / 3) * 150;
                
                _elementButton.x = (_oneelement[i].width - _elementButton.width) / 2;
                _elementButton.y = (_oneelement[i].height - _elementButton.height) / 2;
                
                var myTextFormat:flash.text.TextFormat = new flash.text.TextFormat("Times New Roman", 16, 0x000000, true);
                //var myTextFormatAl:TextFormatAlign;
                
                _myText.defaultTextFormat = myTextFormat;
                _myText.text = "Войти";
                //_myText.autoSize = TextFieldAutoSize.RIGHT;
                
                _myText.selectable = false;
                _myText.x = (_oneelement[i].width - _elementButton.width) / 2;
                _myText.y = (_oneelement[i].height - _elementButton.height) / 2;
                
                _oneelement[i].addChild(_elementButton);
                _oneelement[i].addChild(_myText);
            }
            
            var arrowLeft:Arrowleft = new Arrowleft;
            arrowLeft.x = 10;
            arrowLeft.y = 250;
            
            arrowLeft.addEventListener(MouseEvent.MOUSE_DOWN, onMouseFuck);
            
            addChild(arrowLeft);
            
            var arrowRight:Arrowright = new Arrowright;
            arrowRight.x = 760;
            arrowRight.y = 250;
            
            arrowRight.addEventListener(MouseEvent.MOUSE_DOWN, onMouseFuck2);
            
            addChild(arrowRight);
        
        }
        
        private function onMouseFuck2(e:MouseEvent):void
        {
            _currentPage++;
            for (var i:int = 0; i < 6; i++)
            {
                
                
                
                _oneelement[i].addChildAt(_bitmapElement[i + _currentPage], 0);
                
                
            }
            
            trace('ept');
        }
        
        private function onMouseFuck(e:MouseEvent):void
        {
            _currentPage++;
            for (var i:int = 0; i < 6; i++)
            {
                
                
                _oneelement[i].addChildAt(_bitmapElement[i + _currentPage], 0);
                
            }
            trace('ept');
        }
    
    }
 
}
я так понял, что напутано здесь:

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private function onMouseFuck2(e:MouseEvent):void
        {
            _currentPage++;
            for (var i:int = 0; i < 6; i++)
            {
                
                
                
                _oneelement[i].addChildAt(_bitmapElement[i + _currentPage], 0);
                
                
            }
            
            trace('ept');
        }
        
        private function onMouseFuck(e:MouseEvent):void
        {
            _currentPage++;
            for (var i:int = 0; i < 6; i++)
            {
                
                
                _oneelement[i].addChildAt(_bitmapElement[i + _currentPage], 0);
                
            }
            trace('ept');
        }
0
Theoryofgames
253 / 237 / 50
Регистрация: 20.12.2011
Сообщений: 707
10.07.2013, 12:20 #4
да, почему у Вас и при нажатии на левую кнопку скролера и на правую идет инкремент текущей страницы ?
_curentPage++
0
Heidy
0 / 0 / 0
Регистрация: 03.07.2013
Сообщений: 5
10.07.2013, 16:01  [ТС] #5
Цитата Сообщение от Theoryofgames Посмотреть сообщение
да, почему у Вас и при нажатии на левую кнопку скролера и на правую идет инкремент текущей страницы ?
_curentPage++
ошибься...решил сделать проще, переписал:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
private function onMouseFuck2(e:MouseEvent):void
        {
                
            
            
            
            var k:Bitmap = _bitmapElement[0];
            _bitmapElement.splice(0, 1);
            _bitmapElement.push(k);
            for (var i:int = 0; i < 6; i++)
            {
                _oneelement[i].addChildAt(_bitmapElement[i], 0);
                addChild(_oneelement[i]);
            trace('ept');
            }
        }
        
        private function onMouseFuck(e:MouseEvent):void
        {
            
            
            var f:Bitmap = _bitmapElement[0];
            _bitmapElement.splice(0, 1);
            _bitmapElement.push(f);
 
            for (var i:int = 0; i < 6; i++)
            {
                _oneelement[i].addChildAt(_bitmapElement[i], 0);
                addChild(_oneelement[i]);
            trace('ept');
            }
все вроде работает, но осталось решить почему первый элемент сменяется не сразу(ни влево, ни вправо), а только когда отработает 2 раза(дальше все ок)
0
10.07.2013, 16:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2013, 16:01

Навигация в Галлереи не работает
Привет дорогие форумчане, Нужна ваша помошь! На этом сайте на страничке...

Написание своей галлереи, подскажите литературу.
хочу написать галлерею а на основе прочитанного не хватает знаний для...

Создание изображений
Примерно этого я хочу добиться, только с помощью php, JavaScript......


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru