Как использовать внешние классы ActionScript во FlashBuilder (думал, я знал)
Я пытаюсь внедрить CSVLib в приложение Air и получаю сообщение об ошибке, которое кажется мне совершенно нелогичным.
"1120: Доступ к неопределенному свойству csv." и "1120: доступ к неопределенному свойству completeHandler."
Единственное, что я могу подумать, это то, что он неправильно импортирует класс csv, или сам класс как-то сломан? Я знаю, что мой путь импорта правильный, потому что я набрал его напрямую, основываясь на автоматических подсказках. Приведенный ниже код скопирован непосредственно из практического руководства на сайте csv lib.
Или вам нужно что-то особенное, чтобы внешние классы ActionScript работали во Flashbuilder?
<fx:Script>
<![CDATA[
import com.shortybmc.*;
import com.shortybmc.data.parser.CSV;
var csv:CSV = new CSV();
csv.addEventListener (Event.COMPLETE, completeHandler);
csv.load (new URLRequest('example-2.csv'));
function completeHandler (event: Event)
{
trace ( csv.data.join('\r') );
// do something ...
}
]]>
</fx:Script>
1 ответ
В этом случае проблема где-то еще. fx:Script
тег находится в файле MXML, который представляет определение класса.
Ваша ошибка происходит, потому что у вас есть код в определении класса (т.е. вне метода). Вы можете написать это вместо этого, например:
<fx:Script>
<![CDATA[
import com.shortybmc.*;
import com.shortybmc.data.parser.CSV;
private var csv:CSV;
private function init ():void
{
csv = new CSV();
csv.addEventListener (Event.COMPLETE, completeHandler);
csv.load (new URLRequest('example-2.csv'));
}
private function completeHandler (event: Event):void
{
trace ( csv.data.join('\r') );
// do something ...
}
]]>
</fx:Script>
Тогда вам нужно убедиться, что init
метод на самом деле вызывается; Вы можете сделать это в полном обработчике вашего объекта MXML.