Pixi.js: рдорд╛рдЙрд╕рдореВрд╡ рдкрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдПрдВрдХрд░ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдорд╛рдЙрд╕ рдХреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕реНрдиреИрдк рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдЬреВрди 2013  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pixijs/pixi.js

  1. рдЦреАрдВрдЪрддреЗ рд╕рдордп (рдорд╛рдЙрд╕рдореВрд╡), рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐ рдорд╛рдЙрд╕ рдХреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкрд░ рдХрд╣рд╛рдБ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЦреБрдж рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдорд╛рдЙрд╕ рдкреЙрдЗрдВрдЯрд░ рдЕрдм рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рд▓рдВрдЧрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИред
  2. рдмрдбрд╝реЗ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмрджрд▓рд╛рд╡ рдХрд╛рдлреА рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред
  3. рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдорд╛рдЙрд╕ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдПрдВрдХрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ, рдЧрдгрдирд╛ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдПрдВрдХрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкрд░ рдорд╛рдЙрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдП рдмрд┐рдирд╛ред
  4. рдирдореВрдирд╛ рдХреЛрдб рдФрд░ рдЫрд╡рд┐ рд╕рдВрд▓рдЧреНрдиред рдкреНрд░рдЬрдирди рдкрд░ рдиреЛрдЯреНрд╕:

    • pixi.js (рдЙрджрд╛рд╣рд░рдг 8) рдореЗрдВ рдбреНрд░реИрдЧрд┐рдВрдЧ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рд╕рд░рд▓реАрдХреГрдд рдХреЛрдбред

    • рдЪрд┐рддреНрд░ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдХреЛрдб рдореЗрдВ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ "aboriginal-bunny.png" рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВред

    • рдмрдиреА рдПрдВрдХрд░ рдкреЙрдЗрдВрдЯ 0.1, 0.1 . рдкрд░ рд╕реЗрдЯ рд╣реИ

    • рдорд╛рдЙрд╕ рдХрд░реНрд╕рд░ рдХреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдирд┐рдЪрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдкрд╛рд╕ рдХрд╣реАрдВ рд░рдЦреЗрдВ, рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдВрдХрд░ рдкреЙрдЗрдВрдЯ рд╕реЗ рдХрд╣реАрдВ рднреА рджреВрд░

    • рдореВрд╕рдбрд╛рдЙрди рдкрд░, рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХрд╛ рдЕрд▓реНрдлрд╛ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рд╡рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдореВрд╕рдбрд╛рдЙрди рдкрд░ рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИред

    • рдЕрдЧрд▓рд╛, рдЦреАрдВрдЪреЗрдВ -- рдорд╛рдЙрд╕ рдмрдЯрди рдХреЛ рдиреАрдЪреЗ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ -- рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛

    • рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдЕрдЪрд╛рдирдХ рдмрджрд▓рд╛рд╡ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рддрд╛рдХрд┐ рдорд╛рдЙрд╕ рдЕрдкрдиреЗ рд▓рдВрдЧрд░ рдмрд┐рдВрджреБ рдкрд░ рд╣реЛред

    • рдЗрд╕рдХреЗ рдмрд╛рдж, рдЗрд╕ рдПрдВрдХрд░ рдкрд░ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдбреНрд░реИрдЧрд┐рдВрдЧ рдХреЛ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

<!DOCTYPE HTML>
<html>
<head>
    <!-- Shamelessly adapted from pixi.js Example 8 - Dragging -->
    <title>Sprite to Mouse Snapping issue</title>
    <script src="pixi.js"></script>
</head>
<body>
    <script>

    var stage = new PIXI.Stage(0x97c56e, true);
    var renderer = PIXI.autoDetectRenderer(window.innerWidth, window.innerHeight, null);

    // add the renderer view element to the DOM
    document.body.appendChild(renderer.view);
    renderer.view.style.position = "absolute";
    renderer.view.style.top = "0px";
    renderer.view.style.left = "0px";
    requestAnimFrame( animate );

    // create a texture from an image path
    var texture = PIXI.Texture.fromImage("aboriginal-bunny.png");

    createAboriginalBunny(100, 100);

    function createAboriginalBunny(x, y)
    {
        var bunny = new PIXI.Sprite(texture);
        bunny.setInteractive(true);

        // leaving anchor point at 10% to illustrate the problem clearer
        bunny.anchor.x = 0.1;
        bunny.anchor.y = 0.1;

        /*
         * Set-up dragging
         */     
        bunny.mousedown = bunny.touchstart = function(data)
        {
            this.data = data;
            this.alpha = 0.5;
            this.dragging = true;
        };

        bunny.mouseup = bunny.mouseupoutside = bunny.touchend = bunny.touchendoutside = function(data)
        {
            this.alpha = 1
            this.dragging = false;
            // set the interaction data to null
            this.data = null;
        };

        bunny.mousemove = bunny.touchmove = function(data)
        {
            if(this.dragging)
            {
                // need to get parent coords..
                var newPosition = this.data.getLocalPosition(this.parent);
                this.position.x = newPosition.x;
                this.position.y = newPosition.y;
            }
        }

        // move the sprite to initial pos
        bunny.position.x = x;
        bunny.position.y = y;

        stage.addChild(bunny);
    }

    function animate() {
        requestAnimFrame( animate );
        renderer.render(stage);
    }

    </script>

    </body>
</html>

aboriginal-bunny

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рд╕реНрддреГрдд рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдирдореВрдирд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬрдм рд╣рдореЗрдВ рдЗрддрдиреА рдЬрд╛рдирдХрд╛рд░реА рджреА рдЬрд╛рддреА рд╣реИ рддреЛ рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдорджрдж рдорд┐рд▓рддреА рд╣реИ!

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдорд╛рдЙрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИ (рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрджрд╛рд╣рд░рдг рдпрд╣реА рдХрд░рддрд╛ рд╣реИ)ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЛ рдорд╛рдЙрд╕ рдЖрдВрджреЛрд▓рди рдХреЗ рдбреЗрд▓реНрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

        /*
         * Set-up dragging
         */     
        bunny.mousedown = bunny.touchstart = function(data)
        {
            this.data = data;
            this.alpha = 0.5;
            this.dragging = this.data.getLocalPosition(this.parent);;
        };

        bunny.mouseup = bunny.mouseupoutside = bunny.touchend = bunny.touchendoutside = function(data)
        {
            this.alpha = 1
            this.dragging = false;
            // set the interaction data to null
            this.data = null;
        };

        bunny.mousemove = bunny.touchmove = function(data)
        {
            if(this.dragging)
            {
                // need to get parent coords..
                var newPosition = this.data.getLocalPosition(this.parent);
                this.position.x += (newPosition.x - this.dragging.x);
                this.position.y += (newPosition.y - this.dragging.y);
                this.dragging = newPosition;
            }
        }

рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯреНрд╕ mousedown рдореИрдВ рдорд╛рдЙрд╕ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реВрдВ, рдлрд┐рд░ mousemove рдореИрдВ рдЕрдкрдиреА рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдорд╛рдЙрд╕ рдиреЗ _moved_ (рдЗрд╕реЗ рдирдИ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ), рдлрд┐рд░ рдореИрдВ рдЕрдЧрд▓реА рдмрд╛рд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдорд╛рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕ рдЙрдореНрдореАрдж рдореЗрдВ рд╣реВрдБ рдХреА рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреА!

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рд╕реНрддреГрдд рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдирдореВрдирд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬрдм рд╣рдореЗрдВ рдЗрддрдиреА рдЬрд╛рдирдХрд╛рд░реА рджреА рдЬрд╛рддреА рд╣реИ рддреЛ рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдорджрдж рдорд┐рд▓рддреА рд╣реИ!

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдорд╛рдЙрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИ (рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрджрд╛рд╣рд░рдг рдпрд╣реА рдХрд░рддрд╛ рд╣реИ)ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЛ рдорд╛рдЙрд╕ рдЖрдВрджреЛрд▓рди рдХреЗ рдбреЗрд▓реНрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

        /*
         * Set-up dragging
         */     
        bunny.mousedown = bunny.touchstart = function(data)
        {
            this.data = data;
            this.alpha = 0.5;
            this.dragging = this.data.getLocalPosition(this.parent);;
        };

        bunny.mouseup = bunny.mouseupoutside = bunny.touchend = bunny.touchendoutside = function(data)
        {
            this.alpha = 1
            this.dragging = false;
            // set the interaction data to null
            this.data = null;
        };

        bunny.mousemove = bunny.touchmove = function(data)
        {
            if(this.dragging)
            {
                // need to get parent coords..
                var newPosition = this.data.getLocalPosition(this.parent);
                this.position.x += (newPosition.x - this.dragging.x);
                this.position.y += (newPosition.y - this.dragging.y);
                this.dragging = newPosition;
            }
        }

рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯреНрд╕ mousedown рдореИрдВ рдорд╛рдЙрд╕ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реВрдВ, рдлрд┐рд░ mousemove рдореИрдВ рдЕрдкрдиреА рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдорд╛рдЙрд╕ рдиреЗ _moved_ (рдЗрд╕реЗ рдирдИ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ), рдлрд┐рд░ рдореИрдВ рдЕрдЧрд▓реА рдмрд╛рд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдорд╛рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕ рдЙрдореНрдореАрдж рдореЗрдВ рд╣реВрдБ рдХреА рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреА!

рдирдорд╕реНрддреЗ,

рдпрд╣ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдзрдиреНрдпрд╡рд╛рджред рдФрд░ рд╣рд╛рдВ, рдореЗрд░рд╛ рдХреЛрдб рдЗрд╕ рдмрд╛рдд рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИ, рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред :рдкреА

рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╢реНрди, рдХреНрдпрд╛ рдорд╛рдЙрд╕рдЕрдк рдкрд░ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдбреЗрдЯрд╛ рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рд╕рдЦреНрддреА рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдореИрдВ рдЕрднреА рднреА рдЕрд╕реНрдкрд╖реНрдЯ рд╣реВрдВ рдЬрдм getLocalPosition рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдмрдирд╛рдо рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ред

рдкреБрдирд╢реНрдЪ. рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдкреБрди: рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рд╡рд┐рд╡рд░рдг, рдХрдо рд╕реЗ рдХрдо рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред :)

getLocalPosition рдХрд╛ рдХрд╛рд░рдг рдорд╛рдЙрд╕ рдИрд╡реЗрдВрдЯ рдХреЗ рдирд┐рд░рдкреЗрдХреНрд╖ рдХреЛрд░реНрдбреНрд╕ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд╕рд╛рдкреЗрдХреНрд╖ рдХреЙрд░реНрдб рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИ рдЬреЛ DisplayObjects рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╕реНрдкреНрд▓реЗрдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдЙрд╕рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкреВрд░реНрдг рдорд╛рдЙрд╕ рдХреЙрд░реНрдб рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ this.data.getLocalPosition(this.parent) рд╕рд╛рде рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВред

рдорд╛рдЙрд╕рдЕрдк рдкрд░ this.data = null рд╕реЗрдЯ рдХрд░рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ data рдкрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ this.data рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж; рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдирдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд▓рдореЗрд▓ рдмрд┐рдард╛рдирд╛ред рдореЗрд░реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╕рдордп рдкрд░ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рд╡рд╛рд▓реЗ рдкрд┐рдХреНрд╕реА рджреЗрд╡реЛрдВ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВред

рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

YuryKuvetski picture YuryKuvetski  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

readygosports picture readygosports  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

finscn picture finscn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gaccob picture gaccob  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

madroneropaulo picture madroneropaulo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ