PDA

Просмотр полной версии : не могу запустить swf


workmama
17.06.2010, 10:16
Понимаю что очень идиотский вопрос - но как мне запустить swf на компе, на котором не установлен флэш.

У меня сделана флэшка в CS4 - на моем компе проигрывается все ок, но загвоздка в том что нужно ее запустить на чужом компе - какие только плэйеры на качали - не подхватываются swf файлы!!

Структура работы там тоже не простая - запускается exe , который в себя подгружает swf с видео flv. На моем компе все проигрывается - видео видно, на других просто не открывается - пустая страница на месте видео - swf-ка туда не грузится и не играет.

В путях дело быть не может - я переносила папку с этим файлом в разные места - все открывалось. Сделала вывод что не хватает какой-то программулины - но вот какой??

mooncar
17.06.2010, 10:23
То есть вы проект в exe-шник скомпилировали и он не отображает видео? А видео в свою очередь, загружается в swf, которую exe-шник тоже загружает?
Никакой программулины не хватать не может. Флешка, скомиленная в exe, самодостаточна, ведь флеш-плеер уже внедрен в нее.
Я делал аналогичные проекты с видео, именно по такой же схеме, у всех все работало.
Может какие-то проблемы с асинхронностью? swf-ку вы грузите с помощью MovieClipLoader'a?

workmama
17.06.2010, 10:34
именно такая схема. Я бы видео загружала в сам ехе но поскольку он и так большой - флэш туда уже не вставляет ни в какую, поэтому пришлось эту канитель с промежуточным swf делать.

я гружу вот так ее

loadMovie("1.swf", mov);

других способов не знаю

mooncar
17.06.2010, 10:49
Попробуйте сделать так:

1) Делаете новую swf-ку для видео. И даже не "для видео", а "с видео" внедренным.
То есть при импорте выберите не "Progressive download from server", а "Embeded video.."
Теперь у вас видео будет не подгружаться, а непосредственно внедрено в swf-ку, растянув ее таймлайн.
Воспроизведение-остановка ролика будет напрямую зависеть от проигрывания этого таймлайна.
Попробуйте грузить теперь ее.

2) Но кажется мне, что все косяки у вас не из-за этого, а все же из-за асинхронности.
Перепишите загрузку в exe-шник с loadMovie() (котороый вообще нельзя использовать из-за кривизны своей) на загрузку с помощью MovieClipLoader.
Опишу для ActionScript 2.
Создаете пустой мувик-контейнер для загрузки, например, cont_mc (можно програмнно, через createEmptyMovieClip(), можно руками, но тогда сместите центр так, чтобы он был в левом верхнем углу контейнера). Далее:

var mcLoader:MovieClipLoader = new MovieClipLoader;
var listener:Object = new Object();
mcLoader.addListener(listener);
listener.onLoadInit = function (trgt:MovieClip) {
//только отсюда можно начинать выполнять любые дальнейшие действия с загруженным
//контентом или дальнейшие действия на основной сцене, которые зависят от загруженности ролика,
//имея ввиду, что аргумент trgt ссылается на cont_mc
//то есть trgt == cont_mc == 1.swf
//например:
//trgt.play();
}
mcLoader.load('1.swf', cont_mc);

workmama
17.06.2010, 11:04
1 способ - некоторые мои флэш-видео он не импортирует так как не нравится какой-то аудио кодек ему. Один файл импортировать но опубликоал не полностью так как длина больше 16000 кадров.

2 способо - а где текст малиновым что написать надо?? У меня при таком способо swf загружается вроде в файл но видео так же не идет.

mooncar
17.06.2010, 11:12
Где "малиновое" - это место, из которого все дальнейшие действия можно производить, связанные с видео.

Я бы вот что еще посоветовал попробовать. Надо локализовать проблему. Может быть дело в видео.
Забудьте об exe-шнике вашем. Создайте чистый новый проект, однокадровый. Сделайте в нем загрузку, как я указал и грузите туда вашу swf-ку с подгружаемым видео. Поверьте теперь, что получится.
Просто есть у меня мысли, что у вас может быть не так, но расспрашивать долго и бессмысленно, попробуйте в новом однокадровом проекте.

workmama
17.06.2010, 11:13
сейчас попробую
но что писать вместо малинового текста я все равно понятия не имею

mooncar
17.06.2010, 11:16
напишите там
trace('Загрузилась swf-ка!!!');
Надо понять смысл обработчика onLoadInit.
А смысл такой - этот обработчик четко определяет момент загрузки.

workmama
17.06.2010, 11:17
ничего не выходит потому что я не знаю что писать вместо текста этого малинового, и в однокадровый тоже не подгружается swf ка уже с внедренным видео и просто swf-ка ,подгружающая в себя flv тоже.

Добавлено через 57 секунд
если туда трэс ставлю - он не появляется - загрузки не происходит вообще таким способом

mooncar
17.06.2010, 11:19
trace выводит что-либо?
Может ошибки какие-то появляются?
Если не выводит, значит сама загрузка не происходит. Почему - надо разбираться.
Разумеется, чтобы был доступен trace, нужно тестить все в программе.

PS Сори, у вас вообще в настройках стоит AS2?

workmama
17.06.2010, 11:30
трэйс не выводится, никаких ошибок - проверяю в одностраничном варианте. не работает ни в какую.

as2 стоит в настройках :(

Добавлено через 1 минуту
а при помощи лоадмуви подгружает

Добавлено через 5 минут
трэйс не выводится вообще
лоадмуви грузит swf а ваш способ нет. Пробую в одностраничном новом файлике.

АС2 стоит в настройках