Форум 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=89019)

Laurelis 06.12.2006 01:58

При вызове не работает часть функции.
 
Доброго времени.

Код:

function ukazObjRect(ukazX:Number, ukazY:Number, ukazRazmX:Number, ukazRazmY:Number) {
        maskRect.swapDepths(10000);
        maskRect._x = ukazX;
        maskRect._y = ukazY;
        maskRect._width = ukazRazmX;
        maskRect._height = ukazRazmY;
       
}

Это сама фунция в файле Main
В Main есть объект ScrollPane, в который загружается клип 1.swf
В клипе 1.swf - кнопка but26chas1, на событии которой висит вот этот код:

Код:

but26chas1.onPress = function() {        _parent._parent.ukazObjRect.call(null,_parent._parent.ukazX=this._x, _parent._parent.ukazY=this._y, _parent._parent.ukazRazmX = this._width, _parent._parent.ukazRazmY=this._height);
};

так вот если в функции не оперировать с _width и _height, то получается всё нормально, клип maskRect перемещается на нужные координаты,
как только подключаешь высоту ширину, функция перестаёт вызываться.

Не знаю где ошибка. Помогите пожалуйста.
Спасибо.

pkfun 06.12.2006 02:10

Для чего вы используете вызов через call?

Laurelis 06.12.2006 02:14

извините, немного не понял вопроса.
Вполне возможно это не рационально, но так как я начинающий, то не могли бы объяснить как это зделать правильно?
Через apply?

pkfun 06.12.2006 02:23

Обычно call и apply применяются, когда нужно передать в функцию объект на который будет ссылаться this. Более современный метод использовать класс Delegate. У вас в функции this нет. Значит нет необходимости в использовании этих методов.
Это просто замечание по коду.
Еще, трэйсили параметры на которых происходит сбой?

Laurelis 06.12.2006 02:38

при трассировке ширины и высоты выдаёт 0....
при вызове функции, если задать конкретные значения - верно всё отображает.
this._width почему-то выдаёт 0.

Laurelis 06.12.2006 02:48

У меня возник вопрос, а если в кнопке только HITAREA есть, то у неё вообще есть размеры?

Laurelis 06.12.2006 02:57

Вот и ответ. - нет. Возникает ширина у кнопки только когда она Активна.
т.е. я поставил в состояние Down форму кнопки - и всё заработало....
Познай флэш на самом себе... :)


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

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