Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Можно ли менять name у загружаемого swf (http://www.flasher.ru/forum/showthread.php?t=106818)

Sem3D 22.01.2008 21:11

Тогда следующий вопрос:
В клип MainClip загружаю внешний файл Ext.swf в котором есть клип clip1.
Как мне обратиться к клипу clip1 из клипа MainClip после загрузки?
Получается цепочка MainClip.instanceXX.clip1 и instanceXX не постоянно и может менятся.

И ещё. Если будет предложение что-то типа:
Код:

var ldr:Loader = new Loader();
...
var mc:MovieClip = ldr.loaderInfo.content;
MainClip.mc.clip1.x = 100;

Тогда вопрос, можно ли брать имя переменной (здесь это mc) из какой нибудь текстовой переменной.

BlooDHounD 22.01.2008 21:41

мдя ... не получается цепочки.

content.getChildByName("clip1");

Sem3D 22.01.2008 22:28

2BlooDHounD
content.getChildByName("clip1"); - это к чему?
Ты же видишь, что я новичок. Нужно подробней :)
Если так добраться до clip1, то я просил из MainClip.
Если это пример текстовой переменной, то я просил mc
Что-то типа: MainClip[mc_str].clip1

Нужно, чтобы забыть про ldr и обращаться как-то по другому.

etc 22.01.2008 22:41

getChildAt не катит?

BlooDHounD 22.01.2008 23:05

Код:

var mc:DisplayObjectContainer = ldr.content as DisplayObjectContainer;
mc.getChildByName("clip1");


Sem3D 22.01.2008 23:05

:wacko:
Нет. Что то я наверно не так объясняю :umnik2:
Я хочу из главного клипа MainClip обращаться к clip1, который находится в загруженном. (который загрузили в MainClip). Сейчас обращаюсь через ldr (content и т.д.). Как заменить ldr на что нибудь другое (типа ExtClip) и обращаться просто MainClip.ExtClip.clip1

2BlooDHounD
Да что-то наподобии, но еще чтобы имя (которое mc) бралось из текстовой переменной

etc 22.01.2008 23:22

Используйте статические члены класса. Только к clip1 можно обращаться только через getChildByName. Обращение по имени напрямую возможно лишь при использовании компилятора CS3 и нативно отрисованных на сцене мувиков, не стоит это применять.

DRAGOnoid 23.01.2008 02:10

Sem3D
слуша, а как ты вообще умудрился так добавить загруженный swf, чтобы он был как instanceXX? обычный addChild чтоли?
тогда вообще не понимаю почему нельзя сделать так:
Код:

var info:LoaderInfo  = event.target as LoaderInfo;
this.MainClip.ExtClip = new Object(info.content);


etc 23.01.2008 02:14

Цитата:

Сообщение от DRAGOnoid
не понимаю почему нельзя сделать так:
Код:

var info:LoaderInfo  = event.target as LoaderInfo;
this.MainClip.ExtClip = new Object(info.content);


Осталось расшифровать, что означает сей многозначительный код, особенно втоая строка.

DRAGOnoid 23.01.2008 02:50

я писал условно, я ж его кода не вижу.
если у него загрузчик в основном конструкторе и там же находится этот MainClip, то пусть в нём создаёт объект ExtClip ссылающийся на загруженный SWF.
по крайней мере я примерно так и делаю =) правда выглядит нескольки иначе.
Код:

package {
        import flash.display.*;
        import flash.events.*;
        import flash.net.*;
        public class TestLoader {
                public var MainClip:Sprite;
                public var loader:Loader;

                public function TestLoader        ():void {
                        this.loader = new Loader();
                        this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE,        completed);
                }
                private function complete        (event:Event):void {
                        var info:LoaderInfo = event.target as LoaderInfo;
                        this.MainClip = new Object(info.content);
                        this.addChild(this.MainClip);
                }
        }
}

таким образом this.MainClip - у меня загруженный клип, куда хочу туда и добавляю, и обращаться к нему легко.
в общем я к тому спрашиваю что не понимаю к чему такие сложности ;)


Часовой пояс GMT +4, время: 20:11.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.