Просмотр полной версии : Переходы по кадрам и loadMovie
ArtDenis
25.11.2013, 11:52
Добрый день, у меня следующая проблема:
Есть главный файл - main.swf в нем есть 4, так скажем экрана, или кадра с метками (titul, work, modul, demo)
Мы переходим в этом файле в modul, и там нажимаем на кнопку, где вызывается открытие work и туда грузится второй файл -Россия.swf, следующим кодом:
Код ActionScript 3
on(release){
_root.gotoAndStop("work");
_root.emty_mc.unloadMovie();
_root.emty_mc._x = 85;
_root.emty_mc._y = 100;
_root.emty_mc.loadMovie("content/Россия.swf");
}
Отлично, тут все работает...
Теперь в файле Россия.swf мы имеем кнопку, со следующим кодом:
Код ActionScript 3
on (release) {
_root.gotoAndStop("demo");
_root.emty_mc_demo.unloadMovie();
_root.emty_mc_demo._x = 127;
_root.emty_mc_demo._y = 97;
_root.emty_mc_demo._width = 900;
_root.emty_mc_demo._height = 500;
_root.emty_mc_demo.loadMovie("content/scrolling_movie_clip.swf");
_root.emty_mc_demo._lockroot = true;
}
При этом происходит следующее: кнопка работает, нас перебрасывает на наш demo, только ничего в наш emty_mc_demo не грузится, и мы видим просто красную площадку в которую должен был загрузится scrolling_movie_clip.swf
А теперь, что я выявил, если на кнопку в нашей Россия.swf повесить вместо верхнего кода, вот этот:
Код ActionScript 3
on (release) {
_root.gotoAndStop("work");
_root.emty_mc.unloadMovie();
_root.emty_mc._x = 127;
_root.emty_mc._y = 97;
_root.emty_mc._width = 900;
_root.emty_mc._height = 500;
_root.emty_mc.loadMovie("content/scrolling_movie_clip.swf");
_root.emty_mc._lockroot = true;
}
То он отлично, не перебрасывая на другой кадр (work - это там же, где и был загружен файл Россия.swf, причем как Россия так и новый файл грузится в emty_mc), загружает файл. То есть все работает...
В чем может быть проблема? Как её решить?
Так как, я являюсь любителем, и что-либо мог не верно обозвать, выкладываю скрины:
30209
30208
alexcon314
25.11.2013, 12:10
Проще выложить исходник .fla вместо тучи скринов.
ArtDenis, не совсем понятно, что у вас не получается.
Сформулируйте, пожалуйста, свою проблему в одном лаконичном предложении.
ArtDenis
25.11.2013, 19:25
У меня не получается загрузить 2внешний ролик в главный из 1внешнего ролика, загруженного в главный. При том что, если грузить 2внешний ролик в тоже место где загружен 1внешний ролик - все работает.
Выкладываю исходник:
30212
Здесь надо нажать на большую надпись "Всемирная история" -> "Россия" -> справа будет кнопка "Анимация"
После того как нажмем, увидим что не так...
Затем надо нажать назад - треугольник слева, попадем опять на титульную, там выбрать "Аннотацию" - увидим как должно быть...
ArtDenis
26.11.2013, 08:59
Люди, никто не может помочь?
Очень нужно решить эту проблему...
Флэша под рукой нет. Но помочь могу.
В основной флэшке пропишите метод для загрузки роликов в глобальной области видимости:
_global.loadNewMovie = function(src){
// тут код для загрузки ролика
}
И из загруженной, вызывайте:
_global.loadNewMovie("someMovie")
Это прям на скорую руку, если.
В общем, поменяйте немного устройство. Я так понимаю, что вы из загружаемого ролика пытаетесь управлять основным, перекидывать его на нужный кадр, загружать в клип основного ролика что-то.
А поменять следовало бы на то, что вы не контролируете основной (родительский ролик), а, скорее, просите его, мол, "давай теперь покажем то-то".
Для этого я и предлагаю вам написать метод в глобальной области видимости. Он будет доступен изо всех уровней, в том числе и из загружаемых роликов.
Передаете, к примеру, в этот метод "work", внутри метода определяется, на какой кадр основной временной шкалы основного ролика нужно перейти, что загрузить.
Таким образом, у вас будет централизована загрузка. Вам не нужно будет править все подгружаемые ролики в случае, если поменяются пути.
Вы, кстати, не преподавателем работаете?
ArtDenis
27.11.2013, 21:05
Hauts, огромное Вам спасибо) Направили в нужное русло, причем понятным языком)
Функции должны знать все)
Я не работаю преподавателем, я студент, недавно устроился на работу, пишем такие учебники, как на скрине, для школьников)
Может кому-нибудь пригодится расписанное решение:
1. На основном (main) ролике в первом слое "actions" создал две функции, они ничего не возвращают:
_global.loadNewMovieWork = function(src){
_root.gotoAndStop("work");
_root.emty_mc.unloadMovie();
_root.emty_mc._x = 85;
_root.emty_mc._y = 100;
_root.emty_mc.loadMovie(src);
_root.emty_mc._lockroot = true;
}
_global.loadNewMovieDemo = function(src){
_root.gotoAndStop("demo");
_root.emty_mc_demo.unloadMovie();
_root.emty_mc_demo._x = 127;
_root.emty_mc_demo._y = 97;
_root.emty_mc_demo._width = 900;
_root.emty_mc_demo._height = 500;
_root.emty_mc_demo.loadMovie(src);
_root.emty_mc_demo._lockroot = true;
}
2. А теперь для кнопок, причем не важно где они находятся, там где надо загрузить файл в "work" вызываем функцию loadNewMovieWork:
on(release){
_global.perem = "content/Россия.swf";
_global.loadNewMovieWork(perem);
}
А там где в "demo":
on(release){
_global.perem = "content/scrolling_movie_clip.swf";
_global.loadNewMovieDemo(perem);
}
Еще раз, огромное спасибо за помощь))))
Ну.. это не совсем то, но если работает, то и ок. Тут уж не до правильности, как я понимаю.
Добавлено через 51 минуту
Я не работаю преподавателем, я студент, недавно устроился на работу, пишем такие учебники, как на скрине, для школьников)
Мне, честно говоря, немного жаль школьников. Вам бы толкового дизайнера с неплохим знанием ас найти, вот тогда было бы лучше намного. Ну или просто толкового дизайнера, запрогать такой примитив всегда можно.
_global - это как глас вопиющего в пустыне.
Когда ничего не помогает, и непонятно как быть? :)
Код поработает немножко и перестанет. Все не так сделано.
Рекомендую призадуматься сразу, а не когда уже будет написано неск тысяч строк кода....
dark256, да, _global как взлетный режим при плоском штопоре в секундной высоте над землей.
ArtDenis
28.11.2013, 16:32
dark256, совет принял, а вот много строчек кода, их там не будет...
На счет жаль школьников, я не согласен, им в общем-то без разницы на дизайн, а делать что-то более стоящее, то точно не за те деньги, которые нам платят...
А на счет все не так сделано, и то что _global - взлетный режим, поделитесь, если не трудно как нужно, и как правильно..., там всего то 20 строчек кода во всей книге...
ArtDenis, пара моментов:
1. Это не совсем по теме, но как-то уж некруто делать такого качества учебный материал. При этом дизайнер (или кто там делал) потрудился нарисовать убогие градиенты, добавил фильтров на текст и т.д.
Тем более сами возможности технологии вам позволяют сделать реально классно. И это не вопрос денег, это, скорее, вопрос отношения к тому, чем занимаешься.
А насчет школьников, — да, им, как мне кажется, без разницы на такой дизайн. Ибо дизайн такого качества повсюду в поседневной жизни. Но им было бы не все равно, если бы их учебный материал был бы высокого качества, понятный, очевидный, доходчивый и красивый, в конце концов. По крайней мере мне хочется в это верить.
2. Делать правильно.. Тут в двух словах не рассказать. Это отдельные темы: про загрузку, про архитектуру и т.д.
ArtDenis
28.11.2013, 17:50
Hauts, ну я тогда, был бы рад ссылке или какому-либо материалу про "делать правильно"...
Ну и было бы интересно увидеть достойный дизайн с приличными возможностями)
Буду очень благодарен...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.