Просмотр полной версии : Неадекватный Delegate
Fernando Costa
07.05.2008, 02:16
Собсна вопрос наверное к iNils'у непосредственно.
Так как работаю с классом ru.iNils.Delegate
вот мой код:
import ru.iNils.Delegate
class Main extends MovieClip
{
function Main(){
this.onRelease = Delegate.create(this,collapse,[Math.random()])
}
public function collapse($var){
trace($var)
}
}
при клике на мув трейс постоянно выдает одно и то же значение.:umnik2: В чем подвох?
это тоже самое, что спрашивать, почему этот код
a = Math.random()
trace (a)
...
trace (a)
выводит одно и тоже значение.
надо так делать
import ru.iNils.Delegate
class Main extends MovieClip
{
function Main(){
this.onRelease = Delegate.create(this,collapse,[Math.random/*тут нет скобок*/])
}
public function collapse($var){
trace($var())
}
}
Fernando Costa
07.05.2008, 02:55
Ок, что мне делать с этой фигней?
Я не хочу получать в функцию всегда один и тот же параметр
import ru.iNils.Delegate
class Main extends MovieClip
{
public var isCollapse:Boolean = false;
function Main(){
this.onRelease = Delegate.create(this,collapse,[isCollapse])
}
public function collapse($var){
isCollapse = !$var
trace(isCollapse)
}
}
Я же написал :) Передавать не значение, а ссылку на метод, а внутри функции, уже вызывать этот метод.
Fernando Costa
07.05.2008, 03:37
*продолжая тупить*
и что я с этого получаю, не говоря уже про параметры?
import ru.iNils.Delegate
class Main extends MovieClip
{
public var isCollapse:Boolean = false;
function Main(){
this.onRelease = Delegate.create(this,collapse,[collapseMe])
}
public function collapse($var){
$var()
}
public function collapseMe(){
trace(isCollapse)//undefined
}
}
import ru.iNils.Delegate;
class Main extends MovieClip {
public var isCollapse:Boolean = false;
function Main () {
this.onRelease = Delegate.create (this, collapse, [Delegate.create (this, isCollapse)]);
}
public function collapse ($var) {
$var ();
}
public function collapseMe () {
trace (isCollapse);
}
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.