Ну, вот, к примеру, по-быстрому склепал пример с присвоением публичной переменной главного класса какого-то значения из прелоадера:

Код:
/* Preloader.as */
package
{
import flash.display.Loader
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.events.Event
import flash.display.MovieClip
public class Preloader extends Sprite
{
private var mainLoader:Loader = new Loader()
public var movie:Main
public function Preloader() {
mainLoader.load(new URLRequest("main.swf"))
trace("Preloader started")
mainLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, startMain)
}
private function startMain(e:Event)
{
trace("Main Movie loaded")
//смотрим старое значение переменной:
trace((mainLoader.content as Main).sin)
//записываем объект в переменную, потому что напрямую в mainLoader.content нам не дадут присваивать значения переменным
movie = (mainLoader.content as Main)
movie.sin = "new variable ;)"
//смотрим новое:
trace(movie.sin)
addChild(mainLoader.content)
}
}
}

Код:
/* Main.as */
package
{
import flash.display.Sprite;
public class Main extends Sprite
{
public var sin:String = "old variable"
public var sex:int
public var salvation:Array
public function Main()
{
trace("Main movie started")
}
}
}
Собственно, прелоадер с базовым классом Preloader грузит main.swf с базовым классом Main и задает ему кастомное свойство "sin", что и иллюстрируется трейсами.
Вывод будет вот такой:

Код:
Preloader started
Main movie started
Main Movie loaded
old variable
new variable ;)
Собственно вот, как Вы и хотели, безо всяких строк с парами имя=значение.
P.S.Что-то я совсем засыпаю, забыл добавить в прелоадер получение FlashVars, но это, в принципе, обсуждалось уже на форуме: Вам нужно будет задействовать в коде прелоадера ассоциативный массив stage.loaderInfo.parameters