использовать свойство parent
parent
дает загрузчик
parent.parent
дает swf # 1
Таким образом, вы можете написать функцию, как указано ниже
function fl_MouseClickHandler(event:MouseEvent):void
{
var swf1:Object = parent.parent;
var logo:Loader = swf1.logo;
var ControlLogo:Bitmap = Bitmap(logo.content); // because logo loads an image
ControlLogo.alpha = .3;
}
убедитесь, что logo
не локальная переменная, а глобальная и общедоступная в swf # 1
public var logo:Loader = new Loader();
EDIT:
logo:Loader
добавляется в SWF #1.Загружает изображение, поэтому содержимое является растровым.
beau:Loader
добавляется на сцену.Загружает SWF (SWF # 2), поэтому содержимое - это MovieClip.
, поэтому
root - SWF # 1
, родительский элемент beau
- SWF # 1
родительский элемент SWF # 2 - beau
, а родительский beau
- SWF # 1
, поэтому для SWF # 2 SWF # 1 является родительским для родительского элемента, поэтому parent.parent
Если вы не создаете общедоступные переменные, вы можете управлять этим с помощью свойства name
.
var logo:Loader = new Loader();
logo.name = "logo";
...
...
var beau:Loader = new Loader();
beau.name = "beau";
...
...
Затем в любом месте swf # 2
var swf1:Object = parent.parent;
var logo:Loader = Loader(swf1.getChildByName("logo"));
....
....
Для доступа к содержимому этоРекомендуется использовать приведение типов, как я показал
var ControlLogo:Bitmap = Bitmap(logo.content); // because logo loads an image
, чтобы вы могли проверить, как показано ниже, и избежать ошибок времени выполнения
var ControlLogo:Bitmap = Bitmap(logo.content);
if(ControlLogo){
}
Если вы хотите, чтобы что-то независимо от содержимого выполнялось какпоказано ниже
var ControlLogo:Object = logo.content;
if(ControlLogo && ControlLogo.hasOwnProperty("alpha")){
ControlLogo.alpha = 0.4;
}