Просмотр полной версии : загрузка swf (знаю что надоела)
bettyshort
07.07.2010, 14:46
Ребят ну не издевайтесь пожалуйста, вы нам говорите что мол примеров дофига было "ищи в хэлпе" (вообшще не понимаю что это...) ну напишите пожалуйста пару гребаных кода чтобы от вас люди отстали....посмотрела оналы в поисках, всем таким как я, умные жуки отвечают в одну строчку чтобы отвязалась и а я должна понимать что он имел ввиду... обидно же, вы точно также начинали как и мы, когдато ...(((
помогите, вот моя проблема, раз 3тий наверное выкладываю....
суть такова...
делаю сайт. много swf'ок, среди них main.swf в ней баттон button, при его нажатии надо открыть другую swf another.swf, в ней кнопа back по нажатию которой возвращаемся в main.swf
подскажите коды плиз, не посылайте никуда, легче будет вам не полениться и написать код на пару минут чем я вторую неделю буду мозг *** и меня уволят =(
надеюсь на вас друзья.
умные жуки отвечают в одну строчку чтобы отвязалась
Я здесь недавно и умным пока назвать себя не могу:) Но и я не понял, что тебе не понятно если ты искала на этом форуме. Ведь ответ действительно состоит почти из одной строчки.
Для меня main.swf- основная флешка, сцена, в который подгружаются другие, и зачем нам в нее возвращаться если мы никуда не уходим? Если я не прав. Давай код. Посмотрим.
ну темы были похожие, достаточно поиском воспользоваться и посмотреть примеры работы с MovieClipLoader и loadClip и разобраться, тогда и уволить будет жалко
bettyshort
07.07.2010, 16:25
smz
я так хочу меню сделать а main как главная страница на которой открывать другие, в других - еще другие, но чтобы всегда можно было вернуться на шаг назад......вотъ
zurkis нет слов...
Ну, я думал, что девушек-программистов никогда не будет =)))
MovieClipLoader используй..
Добавлено через 1 минуту
Или зайди на другой flash сайт, залезь в кеш, стырь swf и декомпили их...Это оучение по исходникам, иногда более продуктивное, хотя не особо чесное.
bettyshort
07.07.2010, 16:35
ребят когда я лазила по поиску по этой теме я везде видела фразу "MovieClipLoader используй.."
проблема в том что она мне ни о чем не говорит =)
поэтому я и пытаюсь найти человека который бы мне объяснил как я могу его применить =)
var myMCL:MovieClipLoader = new MovieClipLoader();
var myListener:Object = new Object();
myMCL.addListener(myListener);
my_button.onRelease = function {
_root.myMCL.loadClip("my_swf.swf", 1);
}
my_btn - твоя кнопка
и еще: http://flash-reference.icod.de/MovieClipLoader.html - почитай, чтоб небыло вопросов
bettyshort
07.07.2010, 17:03
не функционрует =(
"ожидается имя функции"
Добавлено через 3 минуты
var myMCL:MovieClipLoader = new MovieClipLoader();
var myListener:Object = new Object();
myMCL.addListener(myListener);
map.onRelease = function {
_root.myMCL.loadClip("map.swf", 1);
}
при кнопки map и подгрузного swf map
да ну не работает, значит не правильно используем, исходник показываем что не работает
а по ссылке что я привел ниже читали? разбирались? примеры применяли на практике?
bettyshort, если тебя к вечеру не уволят или ты не разберешься сама, постараюсь помочь. Сейчас просто нет времени.
Я так понимаю из книг по AS ты не читала ничего.
bettyshort
07.07.2010, 17:32
вотъ (
bettyshort
07.07.2010, 17:34
smz нет, я прочитала что то типа "для чайников" по макромедии
сделала сайт но там всё в одной флэшке и она очень тяжелая получилась, поэту вот пытаюсь занова, так сказать, с умом сделать...
пересохрани под Flash CS3
bettyshort
07.07.2010, 17:41
вотъ...
код не в том месте написали, исправил, в аттаче:
bettyshort
07.07.2010, 18:07
спасибо.. а обратно через баттон так:
btn.onRelease = function ()
{
cont_mc.unloadMovie();
};
???
Добавлено через 5 минут
просто у меня swf'ки будут по каталогам расфасованы, ибо их оч много будет, поетому мне нужно обратное действие тоже
var myListener:Object = new Object();
myMCL.addListener(myListener);
а зачем этот лисенер?:)
а зачем этот лисенер?:)
а затем чтоб ты заглянул в помощь и не задавал дурацких вопросов, тяжело с языком, тебе сюда: http://flash-mx.ru/help/Help/ActionScriptLangRef/00001574.html
а затем чтоб ты заглянул в помощь и не задавал дурацких вопросов, тяжело с языком, тебе сюда: http://flash-mx.ru/help/Help/ActionScriptLangRef/00001574.html
MovieClipLoader.addListener()
Регистрирует объект, получающий сообщения о событиях MovieClipLoader.
и что? а зачем нужен пустой лисенер, который не обрабатывает ни одного события, в вашем случае? где вы его в дальнейшем используете? ведь и без него будет прекрасно работать.
ps тем более если вы любите использовать конструкции типа
map.onRelease = function {
...
}
или перед этим вы тоже пишете
var map_Listener:Object = new Object();
map.addListener(map_Listener:Object );
bettyshort
08.07.2010, 13:19
как обратно ?))))))))))))
Добавлено через 2 минуты
как деактивировать загружаемый swf, так наверное понятнее =)
Ну, я думал, что девушек-программистов никогда не будет =)))
Их дофига, 3 мои знакомые девушки - программисты :taunt:и получше меня в чем-то будут.
______________________________________________________________________
По теме: я bettyshort ответил в асе, должны помочь исходники
to Foxes / Как о объясняю своим ученикам, есть работа с внешней памятью не затрагивающей flash а есть с внутренней. Так лучше понимается. Так вот внешняя это события начала загрузки конца и т.д. не имеют отношения к флеш а имеют отношение к системе как таковой, тоесть идет интеграция загружаемого контента с флешкой. В этом случае для подключения методов внешней памяти мы используем листенер. Тоже самое и с маус эвентами, мышь это ведь среда железа, а не среда флеш - значит память внешняя... Так надеюсь понятнее, хотя может и не правильно))))))
foXes внимательно читаем документацию по классу MovieClipLoader и не задаем дурных вопросов, а вопросы что и зачем, направляй обратно в Adobe
to in4core, спасибо за ответ.
1. в любом случае система сообщает о событиях флешу.
2. далее уже диспетчер флеша уведомляет обработчиков событий.
3. Выполняется код обработчика того-или инного события (listener.any_event_handler)
Это справедливо для диспетчеризации любого рода событий.
Для подключения методов внешней памяти мы используем листенер
Все компоненты уже и без нас с вами в самостоятельном порядке выполняют необходимые методы при наступлении того или инного события. А листнеры используются для добавления дополнительного функционала при обработке.
Это как утверждать, что если не написать свой cell renderer, то ячейка не отрисутся вообще. Она и без нас с вами отрисуется, только, возможно, не так как мы хотим.
Поэтому у меня возник вопрос:
Зачем в этом коде объявляется myListener, который не обрабатывает ни одного события??? зачем он нужен именно в данном контексте? его функционал нулевой! это как объявить переменную и не использовать ее вовсе.
to zurkis: что, не можете нормально ответить? я Вас не спрашиваю что такое лисенер. Я спрашиваю, зачем у Вас написана строчка с его объявлением, если вы его потом никак не определяете? Что, без него нельзя? Не будет работать? Если нет, то может можете объяснить почему?
var myMCL:MovieClipLoader = new MovieClipLoader();
var myListener:Object = new Object();
myMCL.addListener(myListener);
my_button.onRelease = function {
_root.myMCL.loadClip("my_swf.swf", 1);
}
my_btn - твоя кнопка
и еще: http://flash-reference.icod.de/MovieClipLoader.html - почитай, чтоб небыло вопросов
Кто назовет хотя бы одно событие, которое обрабатывает myListener???
если я в чем то не прав, прошу меня обязательно поправить.
И не надо меня посылать читать документацию по синтаксису языка.. хотя бы на документацию по теме ссылки давали, а не на все подряд...
В данном контксте он не нужен. это для красоты и будешго продолжения кода
...это для красоты...
красота, это когда все хотябы в одном стиле:)
когда в одной и той же программе используют то синтаксис
any_object.onAny_event..
то
var myListener:Object = new Object();
myListener.any_event...
any_object.addListener(myListener);
то вообще на таймлайн вешают...
...ужасно
и будующего продолжения кода
интересный подход:)
Поэтому у меня возник вопрос:
Зачем в этом коде объявляется myListener, который не обрабатывает ни одного события???
Кто назовет хотя бы одно событие, которое обрабатывает myListener???
может для выполнения вот этого?
myListener.onLoadStart = function(mcTarget:MovieClip):Void{ };
myListener.onLoadProgress = function(mcTarget:MovieClip, nBytesLoaded:Number, nBytesTotal:Number):Void
{
trace(Math.round(nBytesLoaded / nBytesTotal * 100) + " % " + mcTarget + " загружено");
};
myListener.onLoadInit = function(mcTarget:MovieClip):Void{ };
или я ошибаюсь?
Приведите плииз код без Listener, Хотелось бы взглянуть!
Да NOCD он фигню несет, я объяснил это словом ПРОДОЛЖЕНИЕ кода. Он видимо не понял
Приведите плииз код без Listener, Хотелось бы взглянуть!
Можно же писать:
var myMCL:MovieClipLoader = new MovieClipLoader();
myMCL.onLoadInit=function(){
...
}
Это будет работать. При этом не надо явно создавать дополнительный объект listener'a.
to in4core
Да понял я все:) Просто, в той программе никакого кода больше не было, я смотрел исходник. А ПРОДОЛЖЕНИЯ кода может никогда и не быть, при этом доп ресурсы уже расходуются... Это разве я фигню несу?
var myMCL:MovieClipLoader = new MovieClipLoader();
myMCL.onLoadInit=function(){
...
}
Это будет работать.
Это не будет работать.
Вообще, подразумевается, что MCL вводим, когда требуется дождаться определенных событий - таких как onLoadInit, onLoadComplete.
Можно подписать тот же объект this на эти события, но для объяснения новичку все-таки лучше ввести нового слушателя, создать специализированный Object.
Тем более, что MCL и слушателей и может быть несколько.
foXes внимательно читаем документацию по классу MovieClipLoader и не задаем дурных вопросов, а вопросы что и зачем, направляй обратно в Adobe
В данном случае, в хелпе плохой пример.
Можно подписать тот же объект this на эти события, но для объяснения новичку все-таки лучше ввести нового слушателя, создать специализированный Object.Хуже. Более того, создание отдельного объекта может привести к определенным последствиям. Буквально месяц назад была тема, где автор создавал отдельный объект в качестве слушателя. Код был в первом кадре, но клип был многокадровый, в результате, при каждом прохождении первого кадра, создавался новый объект, который регистрировался и оставался в памяти вместе с кучей подписанных функция. С this такого не будет, так как объект один и тот же.
в результате, при каждом прохождении первого кадра, создавался новый объект, который регистрировался и оставался в памяти вместе с кучей подписанных функция. С this такого не будет, так как объект один и тот же.
Согласен. Но не следить за прохождением кадра, не записывать условие выполнения участка кода - это ошибка того автора более масштабная, наверняка последствий там могло быть и больше.
Сам почти всегда использую this, но при объяснении или в примере стараюсь писать более строго.
Сам почти всегда использую this, но при объяснении или в примере стараюсь писать более строго.Не вижу связи между строго и созданием нового объекта. Пример в хелп (а пустой объект взялся именно от туда) лишь помогает понять суть описания метода, свойства и тп., а не является примером для подражания. Поэтому объяснять надо так как будет использоваться на практике, а лишние вещи будут только путать начинающего и привьет привычку создавать такие объекты постоянно.
Это не будет работать.
ну конечно, не будет..
Не понимаю, зачем писать, если не уверены? Можете проверить здесь:
Пардон, foXes, но я не пишу, если не уверен.
Если я не уверен, я тогда проверяю. Я проверил -
this.createEmptyMovieClip('mc', 0);
var myMCL:MovieClipLoader = new MovieClipLoader();
myMCL.onLoadInit=function(target_mc:MovieClip)
{
trace('loaded');
}
myMCL.loadClip('1.jpg', mc);
компилятор выдал мне ошибку
There is no property with the name 'onLoadInit'.
Логично, я подумал, с чего бы это MCL стал слушать сам себя.
Теперь вы выложили пример, где строки
var myMCL:MovieClipLoader = new MovieClipLoader();
myMCL.loadClip("pic.gif",tmp_mc);
записаны в кадре одного слоя, а
myMCL.onLoadInit=function(_mc:MovieClip)
{
trace("myMCL.onLoadInit function");
} - в кадре нижнего слоя.
Почему тогда так это работает?
Я не понимаю. Типа как бы так можно, но пока компилятор не прочухал? :)
Порядок действия? Но когда код в одном кадре, ни при каком порядке такая конструкция не работает, точнее, не компилируется как минимум.
Пардон, foXes, но я не пишу, если не уверен.
это хорошо:)
Почему тогда так это работает?
Я не понимаю. Типа как бы так можно, но пока компилятор не прочухал? :)
Порядок действия? Но когда код в одном кадре, ни при каком порядке такая конструкция не работает, точнее, не компилируется как минимум.
Это ж флеш:) Дело в том, что в данном случае компилятор не знает какого типа myMCL. Для него это просто объект. Ну а дальше, я думаю, все понятно..
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.