
Код AS3:
package{
import flash.display.MovieClip;
import Multiply;
public class Main extends MovieClip {
var _a;
var _b;
var res;
function Main () {
res = 0;
_a = 20;
_b = 40;
var mlt = new Multiply ({val_1:_a, val_2:_b}, res, multiplyComplit);
}
public function multiplyComplit(result) {
res = result;
trace (res);
//а должно быть 800!
//как записать результат умножения из Multiply в переменную res??
}
}
}
package{
public class Multiply{
var _towrite;
var _callback;
function Multiply (toread, towrite , callback) {
var reslt = toread.val_1*toread.val_2;
callback.apply(null, reslt);
}
}
}
В классе Multiply переменная towrite хранит ссылку на значение переменной(а не на переменную) res в классе Main, следовательно при присвоении значения towrite вы просто присваиваете значение переменной towrite, не затрагивая переменную res и ее значение.
И почему вы так не любите типизацию? Это же удобно.