PDA

Просмотр полной версии : странные сцены


processor
22.08.2005, 07:37
1) Если переходит на другие сцены по событию MovieClip - то ничо не работает. Даже если вызывается функция где переход к сцене.
2) Если переходить по событию Button - то работает.
3) Если MovieClip изменть в параметрах на Button, то работает.
4) Если программно присвоить на MovieClip - onPress функции с переходом к сцене - то работает.

а почему просто с MovieClip по событию не переходит ?

iNils
22.08.2005, 11:11
Сцены глючат. Поэтому если не хочешь натыкаться на феномены, не используй их (тем более их реально в swf не существует, только во время редактирования).
Лучше вместо сцен используй следущую схему:
Каждая сцена помещается в отдельный мувиклип который занимает отдельный кадр в руте.

processor
22.08.2005, 16:22
так я делал - кадр в мувиклип.

Но если пишеш только на AS , то сцены очень удобно использовать как окна ( слайды ). И перемещаться между ними. В одной сцене весь код, в другой редактор одного, в третей редактор другого. Переходить и использовать удобно очень. Короче - навигация по коду и окнам быстрее. Им можно названия давать ( как и фреймам ), но зато они есть в спец окне SCENES и в окне ( сверху, справа есть раскрывающийся список - для быстрой навигации по ним ). А для фреймов так нельзя, кроме неудобного Movie Explorer.

Но если сайт пишеш небольшой, то сцены не нужны. А если крупное веб-приложение, то намного удобнее.

Iv
22.08.2005, 18:51
ходи по меткам.
- ни разу не сталкивался с глюками при переходах по сценам.
но постоянно с их неправильным использованием.

iNils
22.08.2005, 19:00
ходи по меткам.
- ни разу не сталкивался с глюками при переходах по сценам.
но постоянно с их неправильным использованием.
Полгода назад кто то выложил исходник с сценами с глюками при переходе.

processor
23.08.2005, 06:33
кстати заметил хитрую штуку. если в сцене 1 и сцене 2 есть одноименная функция , то вызывая со сцены 2 эту функцию, вызывается - соответственно со 2ой сцены функция. а если только одна функция в сцене 1, то легко вызывается со 2ой сцены.
т.е. получается подобие перегрузки,

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

короче каждому своё. спасибо. ответ получил.

Nox Noctis
23.08.2005, 10:14
еще не стоит забывать что у функций MovieClip.gotoAndPlay/Stop нет такого параметра как "имя сцены". такой аарметр есть только у глобальных функций gotoAndPlay/Stop, которые вызываются не по квалифицированному имени, а напрямую (например gotoAndPlay(...) а не this.gotoAndPlay(...)). на этом часто путаются.

Iv
23.08.2005, 14:26
Полгода назад кто то выложил исходник с сценами с глюками при переходе.
- многие об этом слышали, но я ни разу не видел.

Iv
23.08.2005, 14:32
если в сцене 1 и сцене 2 есть одноименная функция , то вызывая со сцены 2 эту функцию, ...skipped... - всегда вызывается последняя объявленная функция. никакого отношения собственно к сценам это не имеет.
по меткам ходить ( я так всё время и делала ), но - Timeline гадиться - одно другому не мешает. просто вначале сцены ставишь метку с названием сцены и ее юзаешь.
(я так всё время и делала) VS: ответ получил - пора бы определиться с полом уже.

iNils
23.08.2005, 14:41
- многие об этом слышали, но я ни разу не видел.
Я сам видел это только один раз, как раз тогда.

DeathMinstrel
02.04.2006, 05:34
В общем у меня такая проблема нарисовалась:

1) Есть основной мувик отдельным файлом (основной.swf), содержащий 1 кадр, в котором находятся три кнопки и символ типа MovieClip - то есть ещё один мув, экземпляр которого находится в этом первом кадре и имеет название экран

2) Есть другой мувик (загружаемый.swf) - тоже отдельным файлом, имеющий 2 сцены (Сцена1 и Сцена2), в каждой из которых находятся по одному кадру.

3) Делаю загрузку файла загружаемый.swf в экземпляр экран, клипа "экран", что находится в библиотеке первого файла (основной.swf), при помощи команды
экран.loadMovie("загружаемый.swf");

4) В кнопках мува основной.swf пишу такой код:
Кнопка "На сцену 1":
on (press) {
tellTarget (экран) {
gotoAndStop("Сцена1", 1);
}
}

Кнопка "На сцену 2":
on (press) {
tellTarget (экран) {
gotoAndStop("Сцена2", 1);
}
}

Кнопка "Следующий кадр":
on (press) {
tellTarget (экран) {
nextFrame();
}
}

5) Запускаю, файл загружаемый.swf успешно загрузился в экземпляр мувика "экран", что в файле основной.swf. Но кнопки "На сцену 1" и "На сцену 2" не работают!! Зато кнопа "Следующий кадр" работает и осуществляет переход с одного кадра первой сцены файла загружаемый.swf, на кадр второй сцены -она просто благодаря команде nextFrame(); последовательно воспроизводит первый кадры Сцены1, а затем первый кадр Сцены2, а мне нужно, чтоб работали те две кнопы, которые принудительно и конкретно указывают на какой кадр какой сцены перейти.
Мне нужно, чтобы в мувик экран файла основной.swf загрузился файл "загружаемый.swf" (что в общем-то успешно и происходит), и чтобы можно было осуществять управление переходом между сценами файла "загружаемый.swf", кнопками расположенными в файле основной.swf.
Помогите, люди!! Сдаётся мне, что при такой структуре не пашет свойство "Сцена", команды gotoAndStop("Сцена2", 1);, и кнопки "На сцену 1"и "На сцену 2" просто осуществляют переход на первый кадр первой сцены, игнорируя указания на сами сцены!

Пожалуйста не нужно говорить, что сцены - отстой и необходимо всё переделать - я привёл пример из огромной работы, где просто необходима подобная структура, и в подгружаемом мувике не 2, а 4 сцены и каждая содержит по 250 кадров, и необходимо кнопками основного файла управлять переходами на любой кадр любой сцены (т.е. вразброс) подгружаемого файла мува.

Прилагаю архив с исходниками - посмотрите - пример-то простой, не пойму почему не пашет...

breez38
03.04.2006, 04:56
to DeathMinstrel
все гораздо проще:
есть 2 варианта функции gotoAndPlay(): одна - глобальная, и в ней можно использовать сцены, другая - метод класса MovieClip, и в ней нельзя использовать сцены.
так что вызывать сцены в подгружаемом клипе из основного нельзя (поскольку вызов глобальной функции применяется к мувику в котором он вызван).
Конечно, если подумать, то можно что-нибуть придумать, но "овчинка выделки не стоит". Проще, удобнее и стабильнее работатает способ представления каждой сцены ввиде отдельного мувика. Не надо изобретать велосипед: сцены уже давно отмерли, так что если в книжке и написано про сцены - смело можешь пропускать.

PS tellTarget(...) - эта фукнция считается устаревшей со времен флеш 5. Разве не проще написать, например:
экран.nextFrame();