Проблема с объявлением переменных и/или объектов внутри фрейма заключается в том, что область действия ограничена этим фреймом, что не позволяет использовать ваши переменные и/или объекты в других фреймах:
Код кадра
// Frame 0
this.frame_0 = function() {
/* The p1 object can only be used in this frame. */
var p1 = new Object();
/* Let's use something more appropiate for your alert box.
In this case is a string as a property of your object. */
p1.classes = "middle";
}
// Frame 1
this.frame_1 = function() {
/* As a string is being used as a property of your object,
I changed a little bit of your code, to display that string in the alert box.
This will give you an error (p1 not defined),
because the p1 object can't be used in this frame. */
alert("this p1 classes is: " + p1.classes);
/* Stop the timeline */
this.stop();
}
Чтобы избежать такого поведения, вам нужно изменить область видимости. Есть два способа, в зависимости от того, какую область вы хотите использовать:
Вариант 1: область клипа
Область действия ограничена текущим мувиклипом, что означает, что ваша переменная или объект могут использоваться в любом кадре этого мувиклипа.
this.p1 = new Object();
this.p1.classes = "middle";
Код кадра
// Frame 0
this.frame_0 = function() {
this.p1 = new Object();
this.p1.classes = "middle";
}
// Frame 1
this.frame_1 = function() {
alert("this p1 classes is: " + this.p1.classes);
this.stop();
}
Вариант 2: Глобальная область
Не объявляя свою переменную или объект, область действия не имеет ограничений. Его можно использовать в любом кадре любого мувиклипа.
p1 = new Object();
p1.classes = "middle";
Код кадра
// Frame 0
this.frame_0 = function() {
p1 = new Object();
p1.classes = "middle";
}
// Frame 1
this.frame_1 = function() {
alert("this p1 classes is: " + p1.classes);
this.stop();
}
Примечание: создание объекта
Если вы создаете объект, для производительности и простоты лучше использовать литерал объекта вместо new Object()
.
// Option 1
this.p1 = {classes:"middle"};
// Option 2
p1 = {classes:"middle"};
person
cristiancajiaos
schedule
04.12.2017