Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Совсем запутался... :/ (http://www.flasher.ru/forum/showthread.php?t=74449)

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 по устному.


Часовой пояс GMT +4, время: 04:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.