2016-06-14 2 views
0

Я пишу программу в flex, и у меня проблема с этим указателем.AS3, уточнение на указателе 'this'

У меня есть вызов функции внутри функции, и мне интересно, какое событие передается моим этим указателем.

private function funcA(someArgument) 
{ 
    newDialog.show("Title", "Body", funcB, this) // the 'this' is the argument for funcB 
} 

private function funcB(CloseEvent:event) 
{ 
    if(event == Event.CANCEL) 
     doStuff; 
    if(event == Event.COMPLETE) 
     doOtherStuff; 
} 

Чтобы уточнить, мой вопрос, когда я прохожу этот указатель в функцию в NewDialog, я передавая свой вновь созданный диалог или я переходящий в funcA. Я думаю и надеюсь, что его первое.

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

+0

Вы передаете экземпляр области/класса, в котором содержится этот код. – BadFeelingAboutThis

+2

'CloseEvent: event' похоже, что это должно быть' событие: CloseEvent' –

+0

OP, вероятно, приходит из формы C# или аналогичной. –

ответ

0

Когда я передаю этот указатель в функцию в newDialog, я передаю свой недавно созданный диалог или передаю мне funcA.

Ни один из них.

У вас есть private function, являющийся членом class. Чтобы вызвать это function, необходимо создать объект, который является экземпляром этого class, а затем funcA может быть вызван на этот объект.

this - ссылка на этот объект.

1

Хотя значение null верное, подпись метода на funcB выглядит так, как будто он должен быть добавлен в качестве прослушивателя событий. funcB ожидает событие. Все события имеют свойство target, которое является фактическим объектом, отправившим событие, и currentTarget, который является объектом, который прослушивается. Они будут отличаться только в случае пузырящихся событий в списке отображения, где дочерний объект действительно отправил событие.

Если класс, в котором вы нашли этот код, не является подклассом Event, я ожидал бы, что funcB будет ошибкой довольно сложно. Если это подкласс Event, это не должно быть, потому что функциональность в funcA не является чем-то, что должно быть ответственным за событие.

 Смежные вопросы

  • Нет связанных вопросов^_^