Форум 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)
-   -   объявление функций MovieClip ( ошибка ) (http://www.flasher.ru/forum/showthread.php?t=99296)

zafod 02.08.2007 08:33

объявление функций MovieClip ( ошибка )
 
может ошибка в коде или я не там объявляю onRelease

код .as
Код:

class z_mapCellBuffer
{
        var _mc:MovieClip;
       
       
        function z_mapCellBuffer(  )
        {
                var temp_mc;
                var order;

                _mc = _root.createEmptyMovieClip( "_mc", _root.getNextHighestDepth() );

                                order = 1;
                                _mc.attachMovie( "cellButton", "cell" + order, order );
                                temp_mc = _mc["cell" + order ];

                                temp_mc.onRelease = function()
                                {
                                        trace( temp_mc._scriptIndex );
                                }
                       
        }
       
        function fillCell( scriptCell:Number, bufferCell:Number, instance:String, position:String )
        {
                var temp_mc = _mc["cell" + bufferCell ];
                temp_mc._scriptIndex = scriptCell;
                trace( _mc["cell" + bufferCell ]._scriptIndex );
        }
}

Скрипт .fla

Код:

mcb = new z_mapCellBuffer();
mcb.fillCell( 1, 0, "", "" );

при запуске ролика trace "1"
при нажатии на клип "cell1" trace "undifined"
я что то не правильно сделал?

screamge 02.08.2007 09:01

Да вообще класс на класс не похож. Переменные не надо объявлять в теле конструтора, а нужно выносить в приватные/публичные свойства класса. Название класса должно начинаться с прописной буквы. Мувиклипы так не создаются. Возвращающий тип не указан. Для получения/присвоения нужных значений существуют геттер/сеттеры.
По хорошему класс нужно переписывать.
Только вот что вы хотите сделать методом fillCell до меня честно не доходит.

zafod 02.08.2007 09:11

да не важно зачем fillCell
temp_mc, order в теле конструктора живут столько, сколько сама функция, это не переменные класса
С прописной буквы? Это как то влияет на скорость или компиляцию?
Возвращающий тип, хм... ну вообще если тип Void, то его не нужно писать
По теме есть какие нибудь советы?

screamge 02.08.2007 09:20

А что вы хотите сделать то? Просто из вашего кода это совершенно не понятно. Хотите создать мувиклип через класс, назначить ему что-то, если да то что именно?

zafod 02.08.2007 09:37

суть проста
Код:

var some_mc = new MovieClip();
some_mc._someParam = "something";
some_mc.onRelease = function()
{
  trace( this._someParam );
}

результат по нажатию на some_mc - trace "something"
Здесь есть сомнения? У меня нет. Так почему у меня в коде написано тоже самое а trace "undefined"

P.S. fillCell - клипу _mc.cell1._scriptIndex = "1";
далее _mc.cell1.onRelease выполняет trace _mc.cell1._scriptIndex
результат "undefined"

Kikasso 02.08.2007 09:47

Цитата:

Сообщение от zafod
суть проста
Код:

var some_mc = new MovieClip();
some_mc._someParam = "something";
some_mc.onRelease = function()
{
  trace( this._someParam );
}

результат по нажатию на some_mc - trace "something"
Здесь есть сомнения? У меня нет.

А вы проделайте такой эксперимент. На что вы собрались нажимать?
Мувиклипы через new без хака не объявляются.

zafod 02.08.2007 09:51

да суть не в том что куда нажимать, а суть в коде.
Если на some_mc можно нажать, код onRelease выполниться, правильно? и трэйс нам выдаст "something".
мысли абстрактно...
Теперь код класса - там что не так, почему эта связка не выполняется?

zafod 02.08.2007 09:53

короче, долбите мозг мне не по теме.

Kikasso 02.08.2007 10:08

Ладно, вот по теме:
Код:

temp_mc.onRelease = function(){
        trace( temp_mc );
        trace( this._scriptIndex );
}


etc 02.08.2007 10:35

Тема закрыта, а zafod получает второй плюс.
Ваша оценка комментариев никого не интересует, если вы не хотите учиться и понимать, как нужно делать, то это ваши проблемы. Ваш код совершенно ужасен, вам говорят, как нужно делать от и до, а вы упираетесь. Ваяйте свою хренотень дальше тогда и советов не ждите. С таким отношением к работе вам специалистом никогда не быть.


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

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