Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Анимация вертикального листа (http://www.flasher.ru/forum/showthread.php?t=183727)

stflasher 30.08.2012 15:41

Анимация вертикального листа
 
Здравствуйте. Имеется вертикальный лист раскадровки объекта. Я для него написал код, но почему то помимо того что кадры копируются, так ещё создаётся несколько таких же объектов и они движутся сверху вниз. В чём проблема, подскажите пожалуйста ? Код ниже:

Код AS3:

                var tileSheet:MovieClip;
                var tileSheetBD:BitmapData;
                var backgroundBD:BitmapData;
                var backgroundRect:Rectangle;
                var backgroundPoint:Point;
                var canvasBD:BitmapData;
                var canvasBitmap:Bitmap;
                var tileWidth:int;
                var tileHeight:int;
                var heliTilesLength:int;
                var animationIndex:int;
                var animationCount:int;
                var animationDelay:int;
                var heliRect:Rectangle;
                var heliPoint:Point;
                var heliX:int;
                var heliY:int;
                var tilePerRow:int;
                var tileSheetB:Bitmap;
 
 
 
                public function Main() {
 
                        tileWidth=178;
                        tileHeight=148;
                        heliTilesLength=40
                        animationIndex=0;
                        animationCount=0;
                        animationDelay=3;
                        heliX=6;
                        heliY=5;
 
 
                        backgroundBD=new BitmapData(178,148,false,0xFFFFFF);
                        backgroundRect=new Rectangle(0,0,178,148);
                        backgroundPoint = new Point(0, 0);
                        canvasBD=new BitmapData(178,148,false,0xFFFFFF);
                        canvasBitmap=new Bitmap(canvasBD);
                        tileSheet = new Ruletka();
 
                        tileSheetBD = new BitmapData(tileSheet.width, tileSheet.height)
                        tileSheetBD.draw(tileSheet)
                        tileSheetB = new Bitmap(tileSheetBD)
                        tilePerRow=tileSheet.height/tileHeight
                        heliRect=new Rectangle(0,0,178,148);
                        heliPoint = new Point(heliX, heliY);
                        addChild(canvasBitmap);
                        addEventListener(Event.ENTER_FRAME, gameLoop);
                }               
 
                public function gameLoop(e:Event) {                       
                        drawHeli();
                }
 
 
                private function drawHeli():void {                       
                canvasBD.lock()
                                canvasBD.copyPixels(backgroundBD,backgroundRect, backgroundPoint);
                                heliRect.x = int((animationIndex / tilePerRow)) * tileWidth;
                                heliRect.y = int((animationIndex % tilePerRow)) * tileHeight;                               
                                canvasBD.copyPixels(tileSheetB.bitmapData, heliRect, heliPoint);
                                canvasBD.unlock()
                                if (animationCount == animationDelay) {
                                                animationIndex++;
                                                animationCount = 0;
                                                if (animationIndex == heliTilesLength){
                                                        animationIndex = 0;
                                                }
                                        }else{
                                                animationCount++;
                                        }
                }



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

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