Форум 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=208657)

skorpionnn333 12.08.2014 17:16

Так как сделать всем обьектам на сцене разную скорость ???

Gerbert 12.08.2014 18:23

Цитата:

Так как сделать всем обьектам на сцене разную скорость ???
Код AS3:

package 
{
        import flash.display.DisplayObject;
        import flash.display.Shape;
        import flash.display.Sprite;
        import flash.events.Event;
 
        public class Main extends Sprite
        {
                private var _ballSettings:Vector.<BallSettings>;
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
 
                        _ballSettings = new <BallSettings>[];
 
                        const WIDTH:int = stage.stageWidth;
                        const HEIGHT:int = stage.stageHeight;
 
                        for (var i:int = 0; i < 10; i++)
                        {
                                var ball:Shape = this.ball(Math.random() * 50, Math.random() * 0xFF) as Shape;
                                ball.x = Math.random() * WIDTH;
                                ball.y = Math.random() * HEIGHT;
 
                                var settings:BallSettings = new BallSettings(ball, Math.random() * 4);
                                _ballSettings[i] = settings;
 
                                super.addChild(ball);
                        }
 
                        stage.addEventListener(Event.ENTER_FRAME, stage_enterFrameHandler);
                }
 
                private function stage_enterFrameHandler(event:Event):void
                {
                        var length:int = _ballSettings.length;
                        var settings:BallSettings;
                        var ball:DisplayObject;
                        var speed:int;
                        var direction:int;
 
                        while (length-- > 0)
                        {
                                settings = _ballSettings[length];
                                speed = settings.speed;
 
                                ball = settings.view;
                                ball.x += 1 * speed
                                ball.y += 1 * speed
                        }
                }
 
                private function ball(radius:uint, color:uint):DisplayObject
                {
                        var ball:Shape = new Shape();
                        ball.graphics.beginFill(color);
                        ball.graphics.drawCircle(0, 0, radius);
                        ball.graphics.endFill();
 
                        return ball;
                }
        }
 
}

Код AS3:

package  
{
        import flash.display.DisplayObject;
        /**
        * ...
        * @author
        */

        public class BallSettings
        {
                public var view:DisplayObject;
                public var speed:int;
 
                public function BallSettings(view:DisplayObject, speed:int = 1)
                {
                        this.view = view;
                        this.speed = speed;
                }
 
        }
 
}


dimarik 12.08.2014 20:52

Цитата:

Сообщение от LifeIsRhythm (Сообщение 1170452)
1. Таймер у Вас создается локально и будет удален после выполнения метода.

Там тонкость есть, в комментариях. Жаль, что вы пока не сможете поучаствовать в дискуссии.

caseyryan 12.08.2014 20:56

dimarik, тут не совсем то. Здесь событие TIMER_COMPLETE.

dimarik 12.08.2014 21:00

Да я не против, напомнил лишний раз.


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

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