Статьи

Создайте плавный список горячих продуктов с классом Caurina Tweener

Он также сглаживает вещи, используя класс Caurina Tweener. Наслаждаться..




Начнем с рассмотрения файловой структуры нашего проекта. Папка «caurina» является папкой класса Tweener. Вы можете скачать tweener здесь: Tweener . В папке «img» мы будем хранить наши изображения, которые будут использоваться в приложении.
Изображения в моем случае будут иметь размеры 60 пикселей в ширину и 55 пикселей в высоту.

Давайте создадим файл XML. Откройте ваш текстовый редактор и напишите:

01
02
03
04
05
06
07
08
09
10
11
12
<?xml version=»1.0″ encoding=»utf-8″?>
<items>
<item title=»Apple» price=»$10″ img=»img/apple.jpg» link=»http://www.google.com/»/>
<item title=»Orange» price=»$30″ img=»img/orange.jpg» link=»http://cg.tutsplus.com/»/>
<item title=»Lemon» price=»$5″ img=»img/lemon.jpg» link=»http://ae.tutsplus.com/»/>
<item title=»Banana» price=»$100″ img=»img/banana.jpg» link=»http://audio.tutsplus.com/»/>
<item title=»Water melon» price=»$33″ img=»img/water_melon.jpg» link=»http://vector.tutsplus.com/»/>
<item title=»Lime» price=»$21″ img=»img/lime.jpg» link=»http://net.tutsplus.com/»/>
<item title=»Pinapple» price=»$20″ img=»img/pinapple.jpg» link=»http://psd.tutsplus.com/»/>
<item title=»Strawberry » price=»$6″ img=»img/strawberry.jpg» link=»http://tutsplus.com/»/>
<item title=»Grapes » price=»$15″ img=»img/grapes.jpg» link=»http://flash.tutsplus.com/»/>
</items>

Сохраните его как «data.xml» в папке «project».

Идея состоит в том, чтобы передать параметры основной функции «showData». Эти параметры являются значениями «loopMin» и «loopMax» (см. Код) для цикла for (). Затем мы отфильтруем результаты с помощью оператора if () и покажем их.

Создайте новый файл Flash (ActionScript 3).

Установите размер сцены на 350×350 пикселей

С помощью инструмента Rectangle (R) нарисуйте фигуру с размерами 350x350px, введите linear и colors # d3d3d3, # f1f1f1. Используйте инструмент Преобразование градиента (F), чтобы отрегулировать градиент.

Нажмите на форму, затем откройте окно выравнивания и убедитесь, что кнопка «На сцену» включена. Выровняйте свою форму по вертикали и горизонтали.

Создайте новый слой, затем с помощью инструмента прямоугольник нарисуйте фигуру 350x40px с цветом # 333333 и выровняйте ее по основанию.

Теперь выберите обе фигуры и нажмите F8 или «Модификация»> «Преобразовать в символ», установите тип для фрагмента ролика и назовите его «основной».

Дважды щелкните мувиклип, чтобы открыть его, затем переименуйте слой 1 в «фон» и заблокируйте его. Создайте новый слой и назовите его «btns». Выберите инструмент Oval (O), затем удерживайте Shift и перетащите круг с цветом обводки: # 0098FF и цветом заливки: #FFFFFF размеры 20X20 пикселей. Нажмите на обводку и измените высоту обводки на 3.

Выберите свою форму и нажмите F8, чтобы преобразовать ее в символ. Выберите тип «Кнопка» и назовите его «btn».

Дважды щелкните на кнопке, затем щелкните правой кнопкой мыши на рамке «Over». Выберите Вставить ключевой кадр.

«»

Выберите цвет заливки и измените его на # d3d3d3.

Вставьте ключевой кадр в нижнюю рамку и измените цвет заливки на # 999999. Вернитесь к «основному» мувиклипу и нажмите кнопку. Измените его имя экземпляра на «btn1». Затем перетащите кнопку вниз, перетащите вправо, удерживая «Alt», и отпустите, чтобы создать вторую кнопку. Измените имя экземпляра на «btn2».

Повторите процедуру еще раз, чтобы добавить третью кнопку на сцену и изменить имя ее экземпляра на «btn3». Откройте окно Align и отключите кнопку «На сцену». Выберите три кнопки и выровняйте их по горизонтали и вертикали. Включите «На сцену» еще раз и выровняйте их вертикально.

Создайте новый слой и назовите его «items». Нарисуйте прямоугольник размером 320×90 пикселей: type: linear # D3D3D3, # BBBBBB. Опять же, используйте инструмент преобразования градиента, чтобы настроить градиент. Выберите форму и выровняйте ее вертикально по отношению к сцене. Нажмите F8, введите: Movie Clip и назовите его «item» — выберите верхнюю середину в качестве точки регистрации

Дважды щелкните элемент мувиклипа. Их переименовывают в «слой 1» в «фон». Создайте новый слой и назовите его «txt». Выберите инструмент «Текст» (T) и установите тип текста «Динамический текст». Затем нарисуйте текстовое поле, указав имя экземпляра «txt». Введите текст и установите эти свойства:

Создайте новый слой и назовите его «price». С помощью текстового инструмента нарисуйте другое текстовое поле и установите его имя экземпляра равным «цене». Установите цвет текста на: # 0099FF.

Теперь мы собираемся сделать новую кнопку ..

Создайте новый слой и назовите его «btn_more». Теперь нарисуйте фигуру с помощью инструмента прямоугольник размером 60×20 пикселей с цветом: # 666666. Выберите его и нажмите F8. Выберите тип: кнопку и назначьте ей имя «больше». Кроме того, измените его имя экземпляра на «больше». Откройте кнопку и добавьте новый слой, назовите его текстом. Выберите текстовый инструмент и используйте его для рисования текстового поля, введите: статический текст. Введите текст «больше» в поле, цвет: #FFFFFF; размер: 12; формат: выровнять по центру ;.

Вставьте ключевые кадры в кадры «Вверх» и «Вниз» и измените цвет по своему усмотрению. Я использую: более: # 999999; вниз: # 333333;

Вернитесь к основному фрагменту ролика, выберите элемент и измените его имя экземпляра на item1. Удерживая клавишу Alt, перетащите элемент вниз, чтобы добавить копию на сцену. Назовите имя второго экземпляра элемента «item2». Добавьте еще одну копию и измените имя экземпляра на «item3». Выровняйте элементы, и у вас должно получиться что-то вроде этого:

Теперь сделаем маску для предметов. Создайте новый слой, назовите его «mask» и нарисуйте прямоугольник 350x310px.

Щелкните правой кнопкой мыши на слое маски, затем выберите маску:

Создайте новый слой, назовите его «actions» и вставьте код, который находится на следующем шаге.

Посмотрите на полный код:

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
//import Tweener
import caurina.transitions.*;
//<vars>
 
//<xml>
var xmlPath:String=»data.xml»;//holds link to xml file
var data_xml:XML;//XML Object
var data_Req:URLRequest=new URLRequest(xmlPath);//URL Request
var data_Loader:URLLoader = new URLLoader();//Loader
var xml_length:Number;//xml length
//</xml>
 
//<timer>
var time:Number=5000;//5000 = 5 seconds
var timer:Timer=new Timer(time);//timer
//</timer>
 
//<items>
var imgPath:String;//image path for first item
var imgPath2:String;//image path for second item
var imgPath3:String;//image path for third item
var item1Y:Number=item1.y;//item 1 y value
var item2Y:Number=item2.y;//item 2 y value
var item3Y:Number=item3.y;//item 3 y value
//</items>
 
//<other>
var currentBtn:Number=1;//wich btn is pressed
var min:Number;//min value used in function hideNshow()
var max:Number;//max value used in function hideNshow()
//</other>
 
//</vars>
//<functions>—————————————————-
function xmlLoaded(event:Event):void {//xml Loaded function
    data_xml=new XML(data_Loader.data);//get data prom XML file
    xml_length=data_xml.item.length();//xml length
    min=xml_length-6;//set min value to second result
    max=xml_length-2;//set max velue to second resuld
    function showData(loopMin:Number,loopMax:Number) {//Main Function
 
        var i:Number;//var for for loop
        var loopMaxResult=loopMax-2;//var for third result
        var loopSecondResult=loopMax-3;//var for second result
 
        for (i=loopMin; i<loopMax; i++) {//for loop
            if (i==loopMin) {//first result item 1
 
                fData(item1,i);//call fData function to fill item 1
                //<load the image>
                imgPath=data_xml.item[i].@img;//get img url from xml
                var imgRequest:URLRequest=new URLRequest(imgPath);//URL request
                var imgLoader:Loader=new Loader();//image Loader
                imgLoader.load(imgRequest);//load the image
                item1.addChild(imgLoader);//add first image to item 1
                imgLoader.x=-150;//image x value
                imgLoader.y=15;//image y value
                //</load image>
 
            }//end if
            if (i==loopSecondResult) {//second result
 
                fData(item2,i);//call fData function to fill item 2
                //<load the image>
                imgPath2=data_xml.item[i].@img;//get img url from xml
                var imgRequest2:URLRequest=new URLRequest(imgPath2);//URL request
                var imgLoader2:Loader=new Loader();//image Loader
                imgLoader2.load(imgRequest2);//load the image
                item2.addChild(imgLoader2);//add first image to item 2
                imgLoader2.x=-150;//image x value
                imgLoader2.y=15;//image y value
                //</load image>
 
            }//end if
            if (i==loopMaxResult) {//third result
 
                fData(item3,i);//call fData function to fill item 3
                //<load the image>
                imgPath3=data_xml.item[i].@img;//get img url from xml
                var imgRequest3:URLRequest=new URLRequest(imgPath3);//URL request
                var imgLoader3:Loader=new Loader();//image Loader
                imgLoader3.load(imgRequest3);//load the image
                item3.addChild(imgLoader3);//add first image to item 3
                imgLoader3.x=-150;//image x value
                imgLoader3.y=15;//image y value
                //</load image>
 
 
            }//end if
 
        }// end for
        function fData(item:MovieClip,iValue:int) {//function that fill data into items
            var moreURL:String;//url for button more
 
            item.txt.text=data_xml.item[iValue].@title;//fill item title
            item.price.text=data_xml.item[iValue].@price;//fill item price
            moreURL=data_xml.item[iValue].@link;//item link
            item.more.addEventListener(MouseEvent.CLICK, gotoURL);//event listener for more btn
            function gotoURL(e:MouseEvent):void {//click event function
                var myURL:URLRequest=new URLRequest(moreURL);//URL request
                navigateToURL(myURL);//go to item link
 
 
            }//end function gotoURL
 
            // function for show N hide items
            function hideNshow(effTime:Number,effTransition:String,iMin:Number,iMax:Number) {
                //<hide items>
                timer.stop();//stop the timer
                Tweener.addTween(item3, {y:330,alpha:0, time:effTime, transition:effTransition});//hide item 3
                Tweener.addTween(item2, {y:247,alpha:0, time:effTime,delay:0.3, transition:effTransition});//hide item 2
                Tweener.addTween(item1, {y:163,alpha:0,time:effTime, delay:0.6,transition:effTransition,onComplete:Show});//hide item 1,
                //when done call function Show()
                //</hide items>
                function Show() {//show items
                    //<show items>
                    currentBtn+=1;//add 1 to current btn value
                    if (currentBtn==4) {//if currentBtn value is equal to 4 set value to 1 because we have only 3 btns
                        currentBtn=1;//set it to 1
                    }//end if
 
                    item1.removeChild(imgLoader);//remove image from item 1
                    item2.removeChild(imgLoader2);//remove image from item 2
                    item3.removeChild(imgLoader3);//remove image from item 3
 
                    showData(iMin,iMax);//call function showData with parameters iMin and iMax (values of min and max vars)
 
                    min-=3;//decrease the min value to show next 3 results from xml
                    max-=3;//decrease the max value to show next 3 results from xml
                    if (max==xml_length-8) {//if max value
                        min=xml_length-3;//set min value to show first result
                        max=xml_length+1;//set max value to show first result
                    }//end if
 
                    Tweener.addTween(item3, {y:item3Y,alpha:1, time:2,delay:0.6, transition:»easeOutExpo»});//show item3
                    Tweener.addTween(item2, {y:item2Y,alpha:1, time:2,delay:0.3, transition:»easeOutExpo»});//show item2
                    Tweener.addTween(item1, {y:item1Y,alpha:1, time:2, transition:»easeOutExpo»});//show item1
                    timer.start();
                    //</show items>
                }//end function Show
            }//end function hideNshow
            function timerEvent() {//function for timer event
                hideNshow(2,»easeInOutQuart»,min,max);//call function hideNshow
            }
            //btn 1 function
            function btn1Clicked(e:MouseEvent) {
                min=xml_length-3;//set min value
                max=xml_length+1;//set max value
                hideNshow(2,»easeInOutQuart»,min,max);//call function hideNshow
                currentBtn=0;//set surrent Btn
                btnControl(1);//call function btnControl
            }
            //btn 2 function
            function btn2Clicked(e:MouseEvent) {
                min=xml_length-6;
                max=xml_length-2;
                hideNshow(2,»easeInOutQuart»,min,max);
                currentBtn=1;
                btnControl(2);
            }
            //btn 3 function
            function btn3Clicked(e:MouseEvent) {
                min=xml_length-9;
                max=xml_length-5;
                hideNshow(2,»easeInOutQuart»,min,max);
                currentBtn=2;
                btnControl(3);
 
            }
            function btnControl(btnNumber:Number) {
                //some case switch……
                switch (btnNumber) {
                    case 1 ://when btn 1 is active
                        btn1.alpha=0.5;//set alpha
                        btn1.mouseEnabled=false;//disable button
                        Tweener.addTween(btn1, {width:30,height:30,time:2,transition:»easeOutExpo»});//change btn width and height
                        btn2.alpha=1;//set alpha
                        btn2.mouseEnabled=true;//enable btn
                        Tweener.addTween(btn2, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
                        btn3.alpha=1;//set alpha
                        btn3.mouseEnabled=true;//enable btn
                        Tweener.addTween(btn3, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
                        break;
                    case 2 ://when btn 2 is active
                        btn1.alpha=1;//set alpha
                        btn1.mouseEnabled=true;//enable btn
                        Tweener.addTween(btn1, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
                        btn2.alpha=0.5;//set alpha
                        btn2.mouseEnabled=false;//disable button
                        Tweener.addTween(btn2, {width:30,height:30,time:2,transition:»easeOutExpo»});//change btn width and height
                        btn3.alpha=1;//set alpha
                        btn3.mouseEnabled=true;//enable btn
                        Tweener.addTween(btn3, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
                        break;
                    case 3 ://when btn 3 is active
                        btn1.alpha=1;//set alpha
                        btn1.mouseEnabled=true;//enable btn
                        Tweener.addTween(btn1, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
                        btn2.alpha=1;//set alpha
                        btn2.mouseEnabled=true;//enable btn
                        Tweener.addTween(btn2, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
                        btn3.alpha=0.5;//set alpha
                        btn3.mouseEnabled=false;//disable button
                        Tweener.addTween(btn3, {width:30,height:30,time:2,transition:»easeOutExpo»});//change btn width and height
                        break;
 
                }//end Switch
            }//end function btnControl
            //<event listeners>
            //timer
            timer.addEventListener(TimerEvent.TIMER, timerEvent);
            timer.start();
            //buttons
            btn1.addEventListener(MouseEvent.CLICK, btn1Clicked);//Listens for btn1 click and call function
            btn2.addEventListener(MouseEvent.CLICK, btn2Clicked);//Listens for btn2 click and call function
            btn3.addEventListener(MouseEvent.CLICK, btn3Clicked);//Listens for btn3 click and call function
            //</event listeners>
            //show wich btns is active
            if (currentBtn==1) {
                btnControl(1);//call btnControl function
            } else if (currentBtn==2) {
                btnControl(2);//call btnControl function
            } else if (currentBtn==3) {
                btnControl(3);
            }//end if
        }//end function fData
 
 
 
    }//end function ShowData
    showData(xml_length-3,xml_length+1);//show First Result
 
 
}
//end xml Loaded function
//</functions>—————————————————
 
//<call functions>
data_Loader.load(data_Req);
data_Loader.addEventListener(Event.COMPLETE, xmlLoaded);
//</call functions>
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//import Tweener
import caurina.transitions.*;
//<vars>
 
//<xml>
var xmlPath:String=»data.xml»;//holds link to xml file
var data_xml:XML;//XML Object
var data_Req:URLRequest=new URLRequest(xmlPath);//URL Request
var data_Loader:URLLoader = new URLLoader();//Loader
var xml_length:Number;//xml length
//</xml>
 
//<timer>
var time:Number=5000;//5000 = 5 seconds
var timer:Timer=new Timer(time);//timer
//</timer>
 
//<items>
var imgPath:String;//image path for first item
var imgPath2:String;//image path for second item
var imgPath3:String;//image path for third item
var item1Y:Number=item1.y;//item 1 y value
var item2Y:Number=item2.y;//item 2 y value
var item3Y:Number=item3.y;//item 3 y value
//</items>
 
//<other>
var currentBtn:Number=1;//wich btn is pressed
var min:Number;//min value used in function hideNshow()
var max:Number;//max value used in function hideNshow()
//</other>
 
//</vars>
1
2
3
4
5
function xmlLoaded(event:Event):void {//xml Loaded function
    data_xml=new XML(data_Loader.data);//get data prom XML file
    xml_length=data_xml.item.length();//xml length
    min=xml_length-6;//set min value to second result
    max=xml_length-2;//set max velue to second resuld

Когда файл xml загружен, прослушиватель событий вызывает функцию xmlLoaded.

01
02
03
04
05
06
07
08
09
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
function showData(loopMin:Number,loopMax:Number) {//Main Function
 
        var i:Number;//var for for loop
        var loopMaxResult=loopMax-2;//var for third result
        var loopSecondResult=loopMax-3;//var for second result
        for (i=loopMin; i<loopMax; i++) {//for loop
            if (i==loopMin) {//first result item 1
 
                fData(item1,i);//call fData function to fill item 1
                //<load the image>
                imgPath=data_xml.item[i].@img;//get img url from xml
                var imgRequest:URLRequest=new URLRequest(imgPath);//URL request
                var imgLoader:Loader=new Loader();//image Loader
                imgLoader.load(imgRequest);//load the image
                item1.addChild(imgLoader);//add first image to item 1
                imgLoader.x=-150;//image x value
                imgLoader.y=15;//image y value
                //</load image>
 
            }//end if
            if (i==loopSecondResult) {//second result
 
                fData(item2,i);//call fData function to fill item 2
                //<load the image>
                imgPath2=data_xml.item[i].@img;//get img url from xml
                var imgRequest2:URLRequest=new URLRequest(imgPath2);//URL request
                var imgLoader2:Loader=new Loader();//image Loader
                imgLoader2.load(imgRequest2);//load the image
                item2.addChild(imgLoader2);//add first image to item 2
                imgLoader2.x=-150;//image x value
                imgLoader2.y=15;//image y value
                //</load image>
 
            }//end if
            if (i==loopMaxResult) {//third result
 
                fData(item3,i);//call fData function to fill item 3
                //<load the image>
                imgPath3=data_xml.item[i].@img;//get img url from xml
                var imgRequest3:URLRequest=new URLRequest(imgPath3);//URL request
                var imgLoader3:Loader=new Loader();//image Loader
                imgLoader3.load(imgRequest3);//load the image
                item3.addChild(imgLoader3);//add first image to item 3
                imgLoader3.x=-150;//image x value
                imgLoader3.y=15;//image y value
                //</load image>
 
 
            }//end if
 
        }// end for

Функция «showData» передает два параметра «loopMin» и «loopMax», это значения для цикла for (). «loopMaxResult» и «loopSecondResult» мы используем в операторе if () для разделения трех результатов. Если у нас есть массив с 3 элементами, первый элемент будет с ключом [0], а последний — с ключом [2] (0,1,2). Чтобы перебрать массив с помощью for (), наше значение loopMin должно быть = 0, а наш loopMax = 4. Чтобы узнать, в какой элемент нам нужно поместить данные, которые мы используем, если (i == loopMin) это отобразит первый результат в первом элементе, если (i == loopSecondResult) отобразит второй результат, и если (i == loopMaxResult) третий результат.

01
02
03
04
05
06
07
08
09
10
11
12
13
function fData(item:MovieClip,iValue:int) {//function that fill data into items
            var moreURL:String;//url for button more
 
            item.txt.text=data_xml.item[iValue].@title;//fill item title
            item.price.text=data_xml.item[iValue].@price;//fill item price
            moreURL=data_xml.item[iValue].@link;//item link
            item.more.addEventListener(MouseEvent.CLICK, gotoURL);//event listener for more btn
            function gotoURL(e:MouseEvent):void {//click event function
                var myURL:URLRequest=new URLRequest(moreURL);//URL request
                navigateToURL(myURL);//go to item link
 
 
            }//end function gotoURL

Функция fData передает два параметра. Один — это имя экземпляра фрагмента ролика, а второй — значение i. Здесь мы добавляем данные из XML-документа в наши видеоклипы, а также делаем кнопку «еще» открыть ссылки из XML-файла.

01
02
03
04
05
06
07
08
09
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
// function for show N hide items
            function hideNshow(effTime:Number,effTransition:String,iMin:Number,iMax:Number) {
                //<hide items>
                timer.stop();//stop the timer
                Tweener.addTween(item3, {y:330,alpha:0, time:effTime, transition:effTransition});//hide item 3
                Tweener.addTween(item2, {y:247,alpha:0, time:effTime,delay:0.3, transition:effTransition});//hide item 2
                Tweener.addTween(item1, {y:163,alpha:0,time:effTime, delay:0.6,transition:effTransition,onComplete:Show});//hide item 1,
                //when done call function Show()
                //</hide items>
                function Show() {//show items
                    //<show items>
                    currentBtn+=1;//add 1 to current btn value
                    if (currentBtn==4) {//if currentBtn value is equal to 4 set value to 1 because we have only 3 btns
                        currentBtn=1;//set it to 1
                    }//end if
 
                    item1.removeChild(imgLoader);//remove image from item 1
                    item2.removeChild(imgLoader2);//remove image from item 2
                    item3.removeChild(imgLoader3);//remove image from item 3
 
                    showData(iMin,iMax);//call function showData with parameters iMin and iMax (values of min and max vars)
 
                    min-=3;//decrease the min value to show next 3 results from xml
                    max-=3;//decrease the max value to show next 3 results from xml
                    if (max==xml_length-8) {//if max value
                        min=xml_length-3;//set min value to show first result
                        max=xml_length+1;//set max value to show first result
                    }//end if
 
                    Tweener.addTween(item3, {y:item3Y,alpha:1, time:2,delay:0.6, transition:»easeOutExpo»});//show item3
                    Tweener.addTween(item2, {y:item2Y,alpha:1, time:2,delay:0.3, transition:»easeOutExpo»});//show item2
                    Tweener.addTween(item1, {y:item1Y,alpha:1, time:2, transition:»easeOutExpo»});//show item1
                    timer.start();
                    //</show items>
                }//end function Show
            }//end function hideNshow

Функция hideNshow передает 4 параметра.

  1. effTime — время в секундах, которое используется в анимации анимации движения
  2. effeffTransition — тип твинерного перехода
  3. iMin — минимальное значение переменной
  4. iMax — переменная max max

Когда анимация item1 завершена, tweener вызывает функцию «Показать» (которая возвращает элементы обратно, но удаляет изображения из каждого) и запускает функцию «showData», чтобы заполнить их следующими результатами из нашего XML-файла. Кроме того, значение currentBtn увеличивается на единицу. Наконец, таймер запускается.

1
2
3
function timerEvent() {//function for timer event
                hideNshow(2,»easeInOutQuart»,min,max);//call function hideNshow
            }

Эта функция вызывается, когда таймер отсчитывает 5 секунд.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//btn 1 function
            function btn1Clicked(e:MouseEvent) {
                min=xml_length-3;//set min value
                max=xml_length+1;//set max value
                hideNshow(2,»easeInOutQuart»,min,max);//call function hideNshow
                currentBtn=0;//set surrent Btn
                btnControl(1);//call function btnControl
            }
            //btn 2 function
            function btn2Clicked(e:MouseEvent) {
                min=xml_length-6;
                max=xml_length-2;
                hideNshow(2,»easeInOutQuart»,min,max);
                currentBtn=1;
                btnControl(2);
            }
            //btn 3 function
            function btn3Clicked(e:MouseEvent) {
                min=xml_length-9;
                max=xml_length-5;
                hideNshow(2,»easeInOutQuart»,min,max);
                currentBtn=2;
                btnControl(3);
 
            }

Это функции, которые вызывают слушатели событий для кнопок.

01
02
03
04
05
06
07
08
09
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
function btnControl(btnNumber:Number) {
    //some case switch……
    switch (btnNumber) {
        case 1 ://when btn 1 is active
            btn1.alpha=0.5;//set alpha
            btn1.mouseEnabled=false;//disable button
            Tweener.addTween(btn1, {width:30,height:30,time:2,transition:»easeOutExpo»});//change btn width and height
            btn2.alpha=1;//set alpha
            btn2.mouseEnabled=true;//enable btn
            Tweener.addTween(btn2, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
            btn3.alpha=1;//set alpha
            btn3.mouseEnabled=true;//enable btn
            Tweener.addTween(btn3, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
            break;
        case 2 ://when btn 2 is active
            btn1.alpha=1;//set alpha
            btn1.mouseEnabled=true;//enable btn
            Tweener.addTween(btn1, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
            btn2.alpha=0.5;//set alpha
            btn2.mouseEnabled=false;//disable button
            Tweener.addTween(btn2, {width:30,height:30,time:2,transition:»easeOutExpo»});//change btn width and height
            btn3.alpha=1;//set alpha
            btn3.mouseEnabled=true;//enable btn
            Tweener.addTween(btn3, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
            break;
        case 3 ://when btn 3 is active
            btn1.alpha=1;//set alpha
            btn1.mouseEnabled=true;//enable btn
            Tweener.addTween(btn1, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
            btn2.alpha=1;//set alpha
            btn2.mouseEnabled=true;//enable btn
            Tweener.addTween(btn2, {width:20,height:20,time:2,transition:»easeOutExpo»});//change btn width and height
            btn3.alpha=0.5;//set alpha
            btn3.mouseEnabled=false;//disable button
            Tweener.addTween(btn3, {width:30,height:30,time:2,transition:»easeOutExpo»});//change btn width and height
            break;
 
    }//end Switch
}//end function btnControl

btnControl передает один параметр «btnNumber», который используется в операторе switch для изменения свойств кнопок, когда они нажимаются или активны.

1
2
3
4
5
6
7
8
9
//<event listeners>
//timer
timer.addEventListener(TimerEvent.TIMER, timerEvent);
timer.start();
//buttons
btn1.addEventListener(MouseEvent.CLICK, btn1Clicked);//Listens for btn1 click and call function
btn2.addEventListener(MouseEvent.CLICK, btn2Clicked);//Listens for btn2 click and call function
btn3.addEventListener(MouseEvent.CLICK, btn3Clicked);//Listens for btn3 click and call function
//</event listeners>
1
2
3
4
5
6
7
8
//show which button is active
            if (currentBtn==1) {
                btnControl(1);//call btnControl function
            } else if (currentBtn==2) {
                btnControl(2);//call btnControl function
            } else if (currentBtn==3) {
                btnControl(3);
            }//end if

Мы используем три оператора if (), чтобы увидеть, какая кнопка активна в данный момент.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
}//end function fData
 
 
 
    }//end function ShowData
    showData(xml_length-3,xml_length+1);//show First Result
 
 
}
//end xml Loaded function
//</functions>—————————————————
 
//<call functions>
data_Loader.load(data_Req);
data_Loader.addEventListener(Event.COMPLETE, xmlLoaded);
//</call functions>

После завершения функции «ShowData» мы запускаем ее с параметрами (xml_length-3, xml_length + 1), чтобы увидеть первые результаты при запуске приложения. Мы добавляем прослушиватель событий в data_loader, чтобы, когда файл xml загружен и готов к использованию, мы вызываем функцию «xmlLoaded».

Вы можете изменить приложение так, как вам нравится, изменить типы переходов, секунды таймера или, например, сделать так, чтобы оно отображало последние сообщения, новости, твиты и т. Д. Надеюсь, вам понравилось следить за этим!