2016-05-26 3 views
0

Я создал HTML5-холст и добавил Rectangle like Movie (Movie1) Затем я создал Animate for Movie1 Но я не знаю, как работает JS, когда я пытаюсь остановить Animate.Adobe Animate gotoAndStop для видеоклипа

AS3 Действие: Frame1

trace (this.Movie1); 
this.Movie1.gotoAndStop(1); 

Как мне нужно писать на JS?

Я проверяю другой способ, но все они не работают.

this.Movie1.gotoAndStop(1); 
Movie1.gotoAndStop(1); 

я открыл консоль IE и увидел

SCRIPT5007: Невозможно получить свойство 'gotoAndStop' неопределенной или нулевой ссылки

также я написал второй пример

this.stop(); 
alert(this.Movie1);// output: MovieClip (name=null) 
//this.Movie1.gotoAndStop(1); 

this.addEventListener('click', alertpopup); 

function alertpopup(){ 

    //this.Movie1.gotoAndStop(1); 
    alert(this.Movie1); // output: undefined ??? 
} 

Итак, я решил эту задачу, только когда я вставил код в сгенерированный HTML-файл в конец Function Init(). Что-то вроде этого

var canvas, stage, exportRoot; 
function init() { 
    // --- write your JS code here --- 

    canvas = document.getElementById("canvas"); 
    exportRoot = new lib.ExAS3_Canvas(); 

    stage = new createjs.Stage(canvas); 
    stage.addChild(exportRoot); 
    stage.update(); 

    createjs.Ticker.setFPS(lib.properties.fps); 
    createjs.Ticker.addEventListener("tick", stage); 

    Update(exportRoot); 
} 

function Update(root){ 
    <!-- write your code here --> 
    root.stop(); 
    //this.Movie1.name = 'Movie1'; 
    console.log("m=" + root.Movie1); 
    root.Movie1.stop(); 

    root.Movie1.addEventListener('click', alertpopup); 

    function alertpopup(){ 
     root.Movie1.gotoAndStop(1); 
     console.log("r=" + root.Movie1); 
    } 
} 

Почему код не работает с IDE?

я пытаюсь изменить this на моем первый кадр на exportRoot и она работает частично

//this.Movie1.stop(); // it doesn't work 
//exportRoot.Movie1.stop(); // it doesn't work 
this.Movie1.addEventListener('click', alertpopup); 
var i = 0; 
function alertpopup(){ 
    i++; 
    if(i==2) i = 0; 
    exportRoot.Movie1.gotoAndStop(i);      
} 

ответ

1

Я обнаружил, что написание кода в первом кадре дает проблемы с получением в контакте с мувиклипами на сцене (это. Movie1), но помогает код во втором кадре. Также я обнаружил, что использование «этого» внутри функции иногда дает обычную js-ошибку: «this» относится к функции, а не к объекту, который вы «внутри» (Stage). Решите эту проблему с помощью переменной «var that = this;» и вместо «this» внутри функции используйте «that».

+0

Благодарим за информацию. Я думаю, что для любой программы мне нужно использовать CreateJS без IDE. Это будет легче. Но у меня нет обычного редактора JS для него вместо notepad ++. – askeet

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