PDA

Просмотр полной версии : Совсем запутался... :/


Vlad1917
20.01.2006, 04:35
Почему так?

class1 = function (nm) {
this.rob1 = attachMovie(nm, "a", this.getNextHighestDepth(), {_x:10, _y:10});
this.rob2 = 7;

this.hw = function() {
trace("hello, world");
};

this.rob1.onRelease = function() {
trace(this+" "+this._x);
};

this.rob1.rel = function() {
this.hw();
this._parent.hw()
trace(this);
};
};
c1 = new class1("Symbol 1");
this.attachMovie("Symbol 1", "c1.rob2", this.getNextHighestDepth(), {_x:100, _y:100})
// не пашет как ожидается. Ибо:
trace("c1.rob2._x - "+c1.rob2._x+", зато c1.rob2="+c1.rob2)
//"c1.rob2._x - undefined, зато c1.rob2=7". Символ создался, на экране маячит, но к нему никак не обратишься.

a.attachMovie("Symbol 1", "b", this.getNextHighestDepth(), {_x:100, _y:100});
//a.attachMovie("Symbol 1", "c", this.getNextHighestDepth(), {_x:60, _y:60})
//если предыдущую строчку раскомментировать - то экземпляр, созданный на 2 строчки
//выше (a.b), пропадёт сразу после срабатывания этой строчки (a.c)


trace ("Как мне сказать"); c1.hw(); trace("?");
//Как косвенно обратиться к функциям c1 из функций c1.rob1? почему только
c1.rob1.rel();
//"_level0.a"
a.rel()
//"_level0.a"
//а не что-нить типа "_level0.c1.rob1"?
//ведь c1.rob1._x (и всё такое с "_") замечательно работает, да и c1.rob1.onRelease срабатывает...

Или как мне сделать класс, в котором некоторые свойства содержат мувики (или свойства класса не могут быть объектами другого класса?), при взаимодействии с которыми вызываются методы этого класса?
Ну типа создал я объект c1 класса class1, нарисовался мне рисуночек, присвоенный c1.rob1, я по нему мышкой щелкнул, и какой-нить нужный мне метод из с1 запустился...
Или я вобще в каком-то моменте глобально торможу... :/

Juice_Green
20.01.2006, 08:36
файл myclass.as


import mx.utils.Delegate;
class myclass{
private var myname:String;
// конструктор
function myclass(__name:String, _xpos:Number, _ypos:Number ){
myname = __name;
_level0.attachMovie("libmovie", myname, _level0.getNextHighestDepth(), {_x: _xpos, _y: _ypos});
_level0[myname].onPress = Delegate.create(this, mypress);
}
public function mypress(){
trace("Function mypress");
trace("Object name: "+myname);
}
}


файл t.fla

var t:myclass = new myclass("libmovie", 20, 20);

Vlad1917
20.01.2006, 12:52
Всё равно пока не понял, но спасибо, буду разбираться. :)

Juice_Green
20.01.2006, 13:05
Автору последнее устное предупреждение.

Vlad1917
20.01.2006, 15:58
Ух, какая классная штука... Спасибо, уважаемый!

Nirth
20.01.2006, 17:49
топик закрыт изучите правила
Juice Green и Vlad1917 по устному.