Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Загрузка из swf (http://www.flasher.ru/forum/showthread.php?t=45119)

korkiss 19.05.2003 20:03

Загрузка из swf
 
Как загрузить флешку из флешки?

Делаю МС, в библиотеке делаю Linkage с именем "asdf", делаю 2load.swf (Ctrl+F12)

Потом хочу добраться до этой штуки из другой флешки. В ней:
- в 1 фрейме
Код:

loadMovie("2load.swf",_root.mc)
- дальше
Код:

mc2.attachMovie("asdf","new_mc2",1)
это то, до чего у меня ума хватило дойти... :(
не работает ессесно...

вопрос: как загружать флешки из других флешек?

ЗЫ: I have RTFM, have searched... :rolleyes:
ЗЗЫ: потратил на поиски целый день, только щас решил спросить :)


Офтоп... сквозняки опасны для здоровья! Шел по коридору в офисе мимо двери закрытой. Весь задумчивый такой... Тут дверь открылась сквозьняком и я со всей дури в нее и вошел. Итог: нос в кровь, синяк под глазом... и что-то соображается после этого не очень :(

DUDE 19.05.2003 22:28

Вложений: 1
вот тебе исходник колупай.

korkiss 20.05.2003 14:07

10x за исходник =)

у тебя там loadMovieNum() есть.
насколько мой инглиш силен, настолько я и понял из хелпа что эта функция отличается от собрата loadMovie() только тем, что она поддерживает корректный импорт из Flash 4 файлов. так ли это?

на самом деле я вчера сильно головой долбанулся и не смог нормально вопрос сформулировать. :(

итак, дубль два. я хочу подгружать файлики swf как библиотеки объектов. потом аттачить мувики и работать с ними програмно.

пример:
1. подгружаю library.swf в некий МС
loadMovie("library.swf","_root.mc")
2. в самом library.swf (на timeline) ничего нет. зато в библиотеке (Ctrl+L) у меня объекты, которые я прилинковал (Linkage) и вот они то мне и нужны. только как добраться до них ни малейшего понятия нет =(

еще вопрос в кучу: как можно юзать эти МС из library.swf не подгружая ее. типа того (user defined) loadMovieFromFile(URL, itemId, Target)?

да, я делаю движок для каталога диванов. хочу подгружать модели в разных проекциях (+ параметры и описания и тд) из внешних файлов. намереваюсь сделать одну библиотеку для всех этих моделей и грузить из нее по мере необходимости...
как это можно реализовать?
с вариантом 1 файл - 1 модель я сам, думаю, справлюсь...
однако плодить около 200 файлов не желательно. вот, кажется тему раскрыл...

Nox Noctis 20.05.2003 16:04

сто раз было уже... :)
нельзя ничего аттачить между разными свфками...
приаттачить можно только внутри той свфки библиотека которой содержит клип.

то есть если ты подгружаешь в MC.loadMovie("library.swf");
то аттач будет работать только внутри этого MC

korkiss 20.05.2003 17:08

извени за 101 раз, но флешер работает так быстро... что прочитать архив форума нет никакой возможности =(
хотя хотелось бы очень...

насколько я понял, Nox
Код:

_root.createEmptyMovieClip("mc",1);
loadMovie("2load.swf",_root.mc);
_root.mc.createEmptyMovieClip("mc",2);
_root.mc.mc.attachMovie("disk1","disk1mc",1);

в 2load.swf прилинкован "disk1"
так нельзя? у меня по крайней мере не работает....=)
Цитата:

то есть если ты подгружаешь в MC.loadMovie("library.swf");
то аттач будет работать только внутри этого MC
должен работать... или...
Цитата:

нельзя ничего аттачить между разными свфками...
я опять запутался :confused:

Nox Noctis 20.05.2003 17:40

Цитата:

_root.createEmptyMovieClip("mc",1);
loadMovie("2load.swf",_root.mc);
_root.mc.createEmptyMovieClip("mc",2);
_root.mc.mc.attachMovie("disk1","disk1mc",1);

в 2load.swf прилинкован "disk1"
так нельзя? у меня по крайней мере не работает....=)
так можно. все там работает... :)
ошибка не в аттаче - а втом что ты начинаешь пользоваться мувиком _root.mc не дожидаясь пока 2load.swf полностью загрузится... :)
загрузка в любом случае не может идти меньше одного кадра, даже если грузишь с локалки, так что обращаться к клипу сразу после вызова loadMovie("2load.swf",_root.mc); не имеет смысла...

Код:

_root.createEmptyMovieClip("mc", 1);
loadMovie("2load.swf", mc);
this.onEnterFrame = function() {
        var l = mc.getBytesLoaded();
        if (l && l == mc.getBytesTotal()) {
                mc.createEmptyMovieClip("mc", 2);
                mc.mc.attachMovie("disk1","disk1mc",1);
                delete this.onEnterFrame;
        }
};


korkiss 21.05.2003 14:54

Да здравствует Nox, его душистое мыло, его пушистая веревка!!!! :D

10x al0t :)))

+ если кто-то это все еще читает...
когда хочешь, чтобы твоя swf'ка не показывалась после загрузки (например мс._visible = false при загрузке), то это надо писать после того как загрузится swf'ка до конца. потому как mc становится уже mc, а тем, что ты в него загрузил. вот =)
типа мини-грабли...

Nox Noctis 21.05.2003 15:23

Цитата:

Оригинал написал(а) korkiss
это надо писать после того как загрузится swf'ка до конца.
кххх... да не только ЭТО !.. :)
да ВООБЩЕ ВСЕ что дальше происходит с этим клипом НУЖНО ПИСАТЬ ПОСЛЕ того как оно погрузится окончательно... :)
а уж визибл это или что другое - по барабану совсем :)

ilya_cat 21.05.2003 17:32

Я эту проблему обошел так:
1) Создал массив _global.loaded
2) В каждый подгружаемый клип в первом кадре вставил строчку #include "initclip.as"
Вот его содержимое:
Код:

this._loaded=true;
var i
for (i in _global.loaded[this._target]) {
        this[i]=_global.loaded[this._target][i]
}
loadedFunction()

3) Если мне нужно что-то передать в загружаемый клип, пишу следующее:
Код:

_root.global['путь/до/клипа/в/слеш/нотации']={
переменная:'значение переменной',
переменная2:'значение переменной2',
переменная3:'значение переменной3'

Вуаля - клип грузится, после загрузки сглатывает переменные и выполняет loadedFunction()

И никаких мучений с проверкой на загруженность/незагруженность.

Nox Noctis 21.05.2003 17:40

а зачем везде this._target а не просто this ? :)
зачем нужна именно слэш-нотация ?

и к тому же плодить этот скрипт в каждом подгружаемом клипе - не дело... ИМХО. :)

хотя работает, не спорю.


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

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