2014-12-08 4 views
0

Мне было интересно, есть ли кто-нибудь там, который мог бы помочь мне с анимацией spritesheet, которую я делаю с помощью библиотеки createjs. Поэтому у меня есть этот персонаж лисы, который я хочу загрузить, как только пользователь откроет страницу. Я получил, что работает нормально, он повторяет его снова и снова, но я только хочу, чтобы он пробежал один раз. Есть ли способ остановить его или прослушиватель событий, который остановит анимацию, когда она достигнет последнего кадра? Любая помощь приветствуется. Спасибо!Запуск спрайт-листа только один раз, createjs

function projectFox() { 

    createjs.Ticker.addEventListener("tick", stage); 
    createjs.Ticker.setFPS(8); 
    foxanimation(); 

    function foxanimation() { 

    var data = { 

    "images": ["images/foxes.png"], 
    "frames": [ 

     [2, 2, 833, 833], 
     [2507, 837, 833, 833], 
     [3342, 1672, 833, 833], 
     [3342, 2507, 833, 833], 
     [4177, 837, 833, 833], 
     [5012, 837, 833, 833], 
     [4177, 1672, 833, 833], 
     [4177, 2507, 833, 833], 
     [5012, 1672, 833, 833], 
     [5012, 2507, 833, 833], 
     [2, 837, 833, 833], 
     [2, 1672, 833, 833], 
     [2, 2507, 833, 833], 
     [837, 2, 833, 833], 
     [837, 837, 833, 833], 
     [837, 1672, 833, 833], 
     [837, 2507, 833, 833], 
     [1672, 2, 833, 833], 
     [1672, 837, 833, 833], 
     [1672, 1672, 833, 833], 
     [1672, 2507, 833, 833], 
     [2507, 2, 833, 833], 
     [2507, 1672, 833, 833], 
     [2507, 2507, 833, 833], 
     [3342, 2, 833, 833], 
     [4177, 2, 833, 833], 
     [5012, 2, 833, 833], 
     [3342, 837, 833, 833] 

    ], 

    "animations": { 

      "start":{frames:[0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 6, 1, 0]}, 
      "blink":{frames:[0, 7, 8, 7, 0]}, 
      "sleep":{frames:[0, 9, 10, 11, 12, 0]}, 
      "where":{frames:[0, 13, 14, 15, 16, 17, 18, 13, 0]}, 
      "love":{frames:[0, 19, 20, 21, 22, 23, 24, 23, 22, 0]}, 
      "tail":{frames:[0, 25, 0, 26, 27, 0, 25, 0, 26, 27, 0]} 

    } 
    }; 

    var spritesheet = new createjs.SpriteSheet(data); 
    var intro = new createjs.Sprite(spritesheet,'start'); 

    var introBounds = intro.getBounds(); 
    intro.regX = introBounds.width/2; 
    intro.regY = introBounds.height/2; 
    intro.scaleX=0.5; 
    intro.scaleY=0.5; 
    intro.x = stageW/2; 
    intro.y = stageH/2; 
    intro.cursor = "pointer"; 

    stage.addChild(intro); 

    stage.update(); 
    } 

ответ

0

Вы можете сделать это, как это

function projectFox() { 

createjs.Ticker.addEventListener("tick", stage); 
createjs.Ticker.setFPS(8); 
foxanimation(); 

function foxanimation() { 

var data = { 

"images": ["images/foxes.png"], 
"frames": [ 

    [2, 2, 833, 833], 
    [2507, 837, 833, 833], 
    [3342, 1672, 833, 833], 
    [3342, 2507, 833, 833], 
    [4177, 837, 833, 833], 
    [5012, 837, 833, 833], 
    [4177, 1672, 833, 833], 
    [4177, 2507, 833, 833], 
    [5012, 1672, 833, 833], 
    [5012, 2507, 833, 833], 
    [2, 837, 833, 833], 
    [2, 1672, 833, 833], 
    [2, 2507, 833, 833], 
    [837, 2, 833, 833], 
    [837, 837, 833, 833], 
    [837, 1672, 833, 833], 
    [837, 2507, 833, 833], 
    [1672, 2, 833, 833], 
    [1672, 837, 833, 833], 
    [1672, 1672, 833, 833], 
    [1672, 2507, 833, 833], 
    [2507, 2, 833, 833], 
    [2507, 1672, 833, 833], 
    [2507, 2507, 833, 833], 
    [3342, 2, 833, 833], 
    [4177, 2, 833, 833], 
    [5012, 2, 833, 833], 
    [3342, 837, 833, 833] 

], 

"animations": { 

     "start":{ 
       frames:[0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 6, 1, 0], 
       next: false 
        }, 

     "blink":{ 
       frames:[0, 7, 8, 7, 0], 
       next: false 
       }, 

     "sleep":{ 
       frames:[0, 9, 10, 11, 12, 0], 
       next: false 
       }, 

     "where":{ 
       frames:[0, 13, 14, 15, 16, 17, 18, 13, 0], 
       next: false 
       }, 

     "love":{ 
       frames:[0, 19, 20, 21, 22, 23, 24, 23, 22, 0], 
       next: false 
       }, 

     "tail":{ 
      frames:[0, 25, 0, 26, 27, 0, 25, 0, 26, 27, 0], 
       next: false 
      } 

} 
}; 



var spritesheet = new createjs.SpriteSheet(data); 
    var intro = new createjs.Sprite(spritesheet,'start'); 

    var introBounds = intro.getBounds(); 
    intro.regX = introBounds.width/2; 
    intro.regY = introBounds.height/2; 
    intro.scaleX=0.5; 
    intro.scaleY=0.5; 
    intro.x = stageW/2; 
    intro.y = stageH/2; 
    intro.cursor = "pointer"; 

    stage.addChild(intro); 

    stage.update(); 
    } 
+0

здорово, что получилось! Спасибо! , так что я тоже хотел его, чтобы после того, как после запуска только один раз он будет удален со сцены ... мне нужно написать инструкцию if? : S – jvan27

 Смежные вопросы

  • Нет связанных вопросов^_^