Просмотр полной версии : Загрузка из 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:
ЗЗЫ: потратил на поиски целый день, только щас решил спросить :)
Офтоп... сквозняки опасны для здоровья! Шел по коридору в офисе мимо двери закрытой. Весь задумчивый такой... Тут дверь открылась сквозьняком и я со всей дури в нее и вошел. Итог: нос в кровь, синяк под глазом... и что-то соображается после этого не очень :(
вот тебе исходник колупай.
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
извени за 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;
}
};
Да здравствует 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 ? :)
зачем нужна именно слэш-нотация ?
и к тому же плодить этот скрипт в каждом подгружаемом клипе - не дело... ИМХО. :)
хотя работает, не спорю.
ilya_cat
21.05.2003, 17:55
Слеш-нотация - это пережитки старины, к тому же она работает быстрей (да-да, представь себе), чем точечная.
А зачем плодить в каждом файле? Затем, что у меня в проекте могут грузиться сорок (на данном этапе), а в перспективе до пятисот разных клипов, и всеми надо управлять с самого начала.
При другом способе реализации надо вешать столько же таймеров на проверку загрузки, или один таймер, но с тяжеленным обработчиком - а Флеш оооочень не любит программный код, такое ощущение, что после обработки каждой команды вставляется задержка для отдыха процессора.
И вообще, чем больше я узнаю Флеш, тем больше начинаю любить Дельфи
Nox Noctis
21.05.2003, 18:06
Оригинал написал(а) ilya_cat
(да-да, представь себе)...да я даже знаю почему именно она работает быстрее :))
просто в данном случае выигрыш настолько незначительный - что можно не заморачиваться :)
хотя это скорее дело вкуса.
Оригинал написал(а) ilya_cat
у меня в проекте могут грузиться сорокодновременно ?! O__O
вобщем я тебя понял. но "я бы покрасил в зеленое" © :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.