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

Tfp 26.05.2008 22:40

кто вызвал фунуцию?
 
1.Можно узнать кто вызвал функцию?
без диспатчера и передачи ссылки из вызывающего:confused:
for example пишем в какомто ксласе
Код:

var a:int = 12
Master.Fun(a)// (или просто Fun если описать ее в as файле)
trace(a)////15
~~~~~~~~~~~ в мастере(as файле)
function Fun{
тот_кто_вызвал.а+=3
}

2. можно ли какимто образом применить ету функцию не к Master а к вызывающему

BlooDHounD 26.05.2008 23:14

1. нет
2. apply

Tfp 26.05.2008 23:52

что я сделал не так)?
Код:

var a:int = 12
Fun.apply(this)
trace(a)////должно быть 15
-------------------
package
{
public function Fun():void
{
a+=3
}
}

выдет ошыбку 1120: Access of undefined property a.

BlooDHounD 27.05.2008 00:05

Вы всё сделали не так.

Tfp 27.05.2008 00:24

окей) тогда можете привести код к работоспособному виду?

DarkLight 27.05.2008 00:27

значения типа int передаются по значению, а не по ссылке

Tfp 27.05.2008 00:59

ну ето я знаю..так как применить фукцию Fun к вызывающему ее классу??

wvxvw 27.05.2008 01:12

apply() - первый параметр - скоуп функции (на что будет указывать this), второй - массив аргументов, который нужно передать в функцию.

Не знаю, мож глупый вопрос... а откуда дебаггер знает, кто вызвал функцию?

badun 27.05.2008 01:17

http://gotoandflash.ru/forum/index.php?showtopic=3099
Только что значит "кто вызвал?". Какой объект, или какая функция?
Если нужно ссылку на вызывающий объект, то для функций-не_методов это this.

Tfp 27.05.2008 01:37

ну вот что мне нада
Код:

//Class Main
var a:int = 12
Fun.apply(this) нада что б функция fun изменила а, то есть применилась к тому кто ее вызвал(описана она в as файле код которого ниже)
сделать ето без передачи ссылки на обьект который вызвал.
trace(a)////должно стать 15
-------------------
package
{
public function Fun():void
{
trace(this)//.вот ето выдает global
a+=3//ошыбка
}
}

wvxvw не вот передая по апли this (то есть того от куда мы вызываем) в fun трейсинг должен показать не глобал а Class Main ?


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

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