Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   параметр за пределами слушателя (http://www.flasher.ru/forum/showthread.php?t=146009)

Cornford 26.10.2010 10:40

параметр за пределами слушателя
 
Добрый день.
Подскажите пожалуйста как получить параметр за пределами функции слушателя?
Код AS3:

okS.addEventListener(MouseEvent.MOUSE_DOWN, okSClick);
 
function okSClick(e:Event):void {
text = Number(Shirina.text);
Skaf.width = (skw / 300) * text;
s:= Skaf.width
}
trace(s);


TanaTiX 26.10.2010 10:47

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

Cornford 26.10.2010 10:52

ну к примеру я добавил описание:
Код AS3:

public var s:Number = 0;

но в результате всеравно ничего не трейсится кроме изначального значения переменной s

zuxul 26.10.2010 11:01

s:= Skaf.width
вижу паскаль :),
надо так s = Skaf.width

Cornford 26.10.2010 11:03

.)
да это не важно. это я тут неправильно написал в коде всё верно.
всеравно не работает

TanaTiX 26.10.2010 11:05

Ну так вы все это когда трэйсите? Когда значение еще не обновилось или после срабатывания слушателя?
Кстати, я надеюсь вы не в кадрах пишите...

Cornford 26.10.2010 11:14

нет естественно не в кадрах. трейсю как в первом сообщении код:
Код AS3:

function okSClick(e:Event):void {
text = Number(Shirina.text);
Skaf.width = (skw / 300) * text;
s:= Skaf.width
}
<b>
trace(s);
b>


TanaTiX 26.10.2010 11:17

Я не вижу чтоб вы что-то трэйсили после изменения переменной.
И кстати, почитайте информацию о том, как лучше (общепринято) называть переменные, классы и пр.

i.o. 26.10.2010 11:17

вы что ждете увидеть? Ну трейсите и что? Функция то еще не вызывалась, а вы уже потрейсили.

Cornford 26.10.2010 11:20

ну я нажал кнопка сработала функция вызвалась и значение должно измениться тоесть трейс после нажатия кнопки должен выдать уже новое значение а он ничего не выдает при нажатии кнопки

i.o. 26.10.2010 11:23

в функции трейсить надо, а не за ее пределами

Contemplator 26.10.2010 11:25

Цитата:

Сообщение от Cornford (Сообщение 945463)
ну я нажал кнопка сработала функция вызвалась и значение должно измениться тоесть трейс после нажатия кнопки должен выдать уже новое значение а он ничего не выдает при нажатии кнопки

в okSClick добавь trace ;)
и... Колин Мук, "событийная модель" в помощь ;)

Cornford 26.10.2010 11:26

м ну ладно трейс понятно можно и в функции сделать но если мне надо чтобы этот параметр s далее менял ширину объекта и далее ещё много парметров меняется. это всё делать в функции слушателя? можно конечно но вроде как неправильно так делать

Contemplator 26.10.2010 11:28

сейчас всё работает так:
объявление и присвоение значение переменной -> добавление слушателя -> вывод отладочного сообщения... когда-то при возникновении события -> выполнение функции (в теле которой сейчас нет команды на вывод отладочного сообщения ;) )...

Cornford 26.10.2010 11:32

да чето не очень понял о чем вы). мне надо чтобы грубо говоря когда я нажимаю на кнопку внутри функции слушателя в парметр s записывалось новое значение и чтобы за пределами функции слушателя его можно было считать и использовать.

Contemplator 26.10.2010 11:38

Цитата:

Сообщение от Cornford (Сообщение 945470)
да чето не очень понял о чем вы). мне надо чтобы грубо говоря когда я нажимаю на кнопку внутри функции слушателя в парметр s записывалось новое значение и чтобы за пределами функции слушателя его можно было считать и использовать.

и? присваивай значение переменной экземпляра нужное значение в приёмнике события... как в принципе сейчас и есть =) в чём проблема-то? =))
последовательность выполнения кода просто пойми ;)

Cornford 26.10.2010 11:57

не ну я какбы так примерно и делаю. предположим я нажимаю кнопку и внутри функции слушателя у меня трейс который выдает ширину объекта. всё работает. далее мне надо за пределами функции слушателя получить это значение а она там не выводится.

i.o. 26.10.2010 14:21

ну дак как бы может стоит уже с хелпом поближе познакомиться?

Cornford 26.10.2010 14:39

) знаком. ладно, спасибо всем уже нашлось решение.)


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

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