this.parent.removeChild(this);
по другому почемуто работать не хотел (((
Preloader:

Код AS3:
package
{
import com.preloaders.IMGPrel;
import com.preloaders.MainPrel;
import com.preloaders.XMLPrel;
import flash.display.DisplayObjectContainer;
import flash.display.MovieClip;
import flash.events.Event;
public class Preloader extends MovieClip
{
var total:Number;
var loaded:Number;
var rootXML:XMLPrel;
var dataXML:XML;
var mainBar:MainPrel;
public function Preloader()
{
if (stage)
{
f_addedStage();
}
else
{
addEventListener(Event.ADDED_TO_STAGE, f_addedStage);
}
}
public function f_addedStage():void
{
addEventListener(Event.ENTER_FRAME, f_rootCheck);
removeEventListener(Event.ADDED_TO_STAGE, init);
}
public function f_rootCheck(e:Event=null):void
{
var B_loaded:Number = loaderInfo.bytesLoaded;
var B_total:Number = loaderInfo.bytesTotal;
if (B_total == B_loaded)
{
this.addEventListener("D_XML", f_xmlDone);
rootXML = new XMLPrel("xml/data.xml");
this.addChild(rootXML);
removeEventListener(Event.ENTER_FRAME, f_rootCheck);
}
}
public function f_xmlDone(e:Event):void
{
this.removeEventListener("D_XML", f_xmlDone);
dataXML = rootXML.dataXML;
mainBar = new MainPrel(dataXML, "main.swf", ALL, stage.stageWidth / 2, stage.stageHeight / 2);
this.addChild(mainBar);
stage.addEventListener(Event.RESIZE, resizeListener);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
}
}
MainPrel:

Код AS3:
package com.preloaders
{
import flash.display.DisplayObjectContainer;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
public class MainPrel extends MainPrelBar
{
var _put_in:DisplayObjectContainer;
var per:Number;
var total:Number;
var loaded:Number;
var imageLoader:Loader;
var imageUrl:URLRequest;
var tw_Alpha:Tween;
var tw_Show:Tween;
var tween_spd:Number = 20;
var r_XML:XML;
public function MainPrel(d_XML:XML, path:String, put_in:DisplayObjectContainer, pos_x:Number=10, pos_y:Number=10)
{
r_XML = d_XML;
tw_Show = new Tween(this, "alpha", Regular.easeOut, 0, 1, tween_spd, false);
imageLoader = new Loader();
imageUrl = new URLRequest(path);
imageLoader.load(imageUrl);
imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressListener);
_put_in = put_in;
this.x = pos_x;
this.y = pos_y;
}
public function progressListener (e:ProgressEvent):void{
total = e.bytesTotal;
loaded = e.bytesLoaded;
per = Math.floor((loaded/total)*100);
mc_line.gotoAndStop(per);
if (total == loaded) {
imageLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressListener);
tw_Alpha = new Tween(this, "alpha", Regular.easeOut, 1, 0, tween_spd, false);
tw_Alpha.addEventListener(TweenEvent.MOTION_FINISH, onFinish);
}
}
public function onFinish(e:TweenEvent):void {
_put_in.addChild(imageLoader);
tw_Show = new Tween(imageLoader, "alpha", Regular.easeOut, 0, 1, tween_spd, false);
this.parent.removeChild(this);
}
}
}
вот как из preloader обратиться к томуже СЕТТЕРУ Main'a если я вообще не могу понять где он относительно preloader'a распологается?
видимо путаюсь еще изза того что есть сами SWF на физическом уровне - которые нужно загружать и классы которые ими управляют
Добавлено через 4 минуты
приношу извинения за кривизну кода (только начал переходить с AS2 и очень сложно все дается)
если можно не акцентируйте внимание на мелочах и просто укажите как передать XML в main или как сделать так чтоб с main'a можно было к нему обращаться?