По какой-то причине AS3 не распознает дочернюю функцию класса XML как функцию.xml.child не является функцией?
В Документах:
child(propertyName:Object):XMLList
Списки потомков объекта XML объекта.
var xml:XML = new XML (
<body>
<bar value = "1"/>
<foo value = "2"/>
</body>);
var f:Function = xml.child as Function;
trace(XMLList(f("foo")).toXMLString());
Этот код выдает ошибку: Error #1006: value is not a function.
При дальнейшем осмотре, f
оказывается null
.
Так что мой вопрос: как назначить функцию child()
класса XML
переменной типа Function
?
На стороне примечание, причина в том, что это необходимо из-за его использования в служебной функции, forEach(arr:Array, f:Function):Array
, которая выполняет функцию f
по каждому элементу массива и возвращает результат.
Да, но такая функция должна принимать два параметра: один для объекта xml и другой для параметра propertyName: String. Поскольку forEach() принимает функции только с одним параметром, мне нужно передать либо функцию xml.child, либо функцию с тем же заголовком, что и xml.child – bananasplits
обновил ответ ... HTH – catholicon
Это общий подход, который вы должны принять , В моем случае, из-за устройства, я смог пройти, вложив функцию в другую, чтобы экземпляр xml был в области видимости, и я мог бы вызвать xml.child(), используя только один параметр. Таким образом, функция удовлетворяла требованиям forEach() – bananasplits