Исчезать изображения в - PullRequest
1 голос
/ 02 апреля 2012

Я пытаюсь выцветать изображение в среде холста. Суть в том, что я хочу сделать, перемещая изображение слева направо, я хочу уменьшить его с 0% альфа до 100% альфа. Когда я комментирую информацию globalAlpha и альфа в моем коде, она движется так, как я хочу, моя единственная проблема - заставить ее исчезать. Я могу заставить работать функцию globalAlpha, но она влияет на все художественные работы в области холста. Есть ли способ, которым я могу просто повлиять на один элемент? в конце концов я захочу добавить в анимацию несколько элементов в разное время, основываясь на таймере, но если я смогу сначала заставить это работать, я могу перейти оттуда.

window.addEventListener('load', eventWindowLoaded, false);
function eventWindowLoaded() 
{
    canvasApp();
}
function canvasSupport () 
{
    return Modernizr.canvas;
}
function canvasApp()
    {
        if (!canvasSupport()) 
        {
            return;
        }



        var pointImage = new Image();
        pointImage.src = "images/barry.png";
        var barry = new Image();
        barry.src = "images/barry.png";
        /*var alpha = 0;
        context.globalAlpha = 1;*/

        function drawScreen() 
        {

            //context.globalAlpha = 1;
            context.fillStyle = '#EEEEEE';
            context.fillRect(0, 0, theCanvas.width, theCanvas.height);
            //context.globalAlpha = alpha;

            //Box
            context.strokeStyle = '#000000';
            context.strokeRect(1, 1, theCanvas.width-2, theCanvas.height-2);


            if (moves > 0 ) 
            {
                moves--;
                ball.x += xunits;
                ball.y += yunits;
            }



            context.drawImage(barry, ball.x, ball.y);

            /*context.restore();
            alpha += .1;
            if (alpha > 1)
            {
                alpha = 0;
            }*/


        }

        var speed = 1;
        var p1 = {x:20,y:250};
        var p2 = {x:40,y:250};
        var dx = p2.x - p1.x;
        var dy = p2.y - p1.y;
        var distance = Math.sqrt(dx*dx + dy*dy);
        var moves = distance/speed;
        var xunits = (p2.x - p1.x)/moves;
        var yunits = (p2.y - p1.y)/moves;
        var ball = {x:p1.x, y:p1.y};
        var points = new Array();
        theCanvas = document.getElementById("canvas");
        context = theCanvas.getContext("2d");
        ctx = theCanvas.getContext("2d");
        setInterval(drawScreen, 10);
    }

любые предложения приветствуются!

1 Ответ

0 голосов
/ 02 апреля 2012

Я думаю, что этот другой вопрос даст вам способ сделать это.

он показывает, как загрузить элемент в контексте холста, а затем как его постепенно растушевать.* Как изменить непрозрачность (альфа, прозрачность) элемента в элементе canvas после его отрисовки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...