Не могу понять где ошибка.

Код AS3:
import flash.net.*;
import flash.events.*;
var str:String;
var urlRequest:URLRequest = new URLRequest("test.txt");
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);
urlLoader.load(urlRequest);
function urlLoader_complete(event:Event):void
{
trace(urlLoader.data);
str = urlLoader.data;
}
var strSplit:Array = str.split(/,/);
Через trace выводит данные в output, правда каракулями (в test.txt русские буквы). А в str почемуто не записывает. Ошибку не выдает, но в output пишет что не может вызвать метод(split()) со ссылкой на объект null. Попробовал для проверки вывести str в dynamictext, но str пустой.
Внутри функции urlLoader_complete dynamictext.text = urlLoader.data работает но тоже выводится каракулями.
А снаружи функции dynamictext.text = str, не работает.
Данные в переменную не записываются и я не могу понять почему. И из-за чего каракули?