Просмотр полной версии : _parent в теле класса
onButton.prototype.drawButton = function() {
this.createEmptyMovieClip("upperButton", 500);
this.XXX = 120;
this.upperButton._y = 60;
with (this.upperButton) {
//тут я рисую
}
this.upperButton.onRelease = function() {
trace(_parent.XXX);
};
};
и так после добавления this.upperButton.onRelease мувиклип стал реагировать на мышку(курсор меняеться) но он на отказ не понимает _parent.XXX ,тоесть я не могу дать ему ссылку на переменную которая находиться в главном мувике.
вот объясните плиз в чем тут проблема и как правильно ссылаться на родительский объект.
заранее спасибо.
this.upperButton.onRelease = function() { trace(this._parent.XXX); };
Не получаеться. :confused:
экспортирую как флэш 7 с версии с АС 1.0.
ас файл ниже (с исправлением ниже fiot).
по моему использовать createEmptyMovieClip нельзя... так как он не будет создаваться... попробуй уже готовый, делать attachMovie
создаеться, белый прямоугольник.
когда ставишь ему собитие мышки он реагирует как кномпа(курсор меняеться) коментируешь событие на мышку курсор не меняеться.
нет все для него создаеться. мне кажеться тут дело в какой то мелочи.
через атач или ввообще в отддельном мувике все идет, но хотелось бы обойтись одним ас файлом.
Object.prototype.REGISTER_CLASS = function(class)
{
this.constructor = class;
this.__proto__ = class.prototype;
this.constructor();
};
_global.o = function()
{
this.id = "o";
this.init();
ASSetPropFlags(this, "id", 7, 1);
};
_global.depth = function()
{
return this += 1;
};
o.prototype = new MovieClip();
o.prototype.init = function()
{
this.createEmptyMovieClip('o', depth());
this.o.draw(0xAA0066, 42, 102, 78, 158);
this.o.onPress = function()
{
this.draw(0xAA6666, 42, 102, 78, 158);
};
this.o.onRelease = function()
{
this.draw(0xAA0066, 42, 102, 78, 158);
};
ASSetPropFlags(this.o, null, 1, 1);
};
MovieClip.prototype.draw = function(col, top, left, bottom, right)
{
this.lineStyle(0);
this.beginFill(col);
this.moveTo(left, top);
this.lineTo(right, top);
this.lineTo(right, bottom);
this.lineTo(left, bottom);
this.lineTo(left, top);
this.endFill();
};
ASSetPropFlags(_global, null, 1, 1);
// =)
this.createEmptyMovieClip('a', 1);
a.REGISTER_CLASS(o);
спасиб=)
чуть перепоял код. все работает.
только мне всеже не понятно чисто с логической стороны, что там не правильно....может гуру объяснят?
Вы чё народ, понаписали, я даж не понял. Дело всё в том, что this.upperButton.onRelease = function()
{
trace(_parent.XXX); //this == this.upperButton.onRelease
}; Делай такvar MC = this;
this.upperButton.onRelease = function ()
{
trace( MC._parent.XXX ); //this == this.upperButton.onRelease
};
Тут не в этом дело
тут просто не уточняется что drawButton вызывается на onEnterFrame. Вот все и глючит
А правильное обращение написано уже во втором сообщении fiot-ом
а MC._parent.XXX не правильно
если уж так писать правильно MC.XXX
2 Елё Я не знаю насчёт onEnterFrame, но _parent.XXX просто не может работать. MC._parent.XXX в общем тоже. Действительно, правильно MC.XXX, это я напутал.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.