PDA

Просмотр полной версии : Презентация с подгрузкой контента и XML


Lodeon
16.07.2006, 22:36
Делаю движок для презентации. Он из XML файла подгружает содержимое: текст, ссылки на картинки, звук и видео.

С парсингом XML все понятно. Проблема в том чтобы расположить и загрузить контент в следующем фрейме (если есть время в n последующих), пока пользователь просматривает текущий.

Потому как в 12 слайде может оказаться видео, а на его загрузку нужно много времени, а мы за время пока пользователь смотрел первые 11 слайдов его уже загрузим.

Если я гружу картинку так:

_root.createEmptyMovieClip("logo_mc", 1);
logo_mc.loadMovie(Objects[j].attributes.path);


то она оказывается Выше всех фреймов и перекрывает их.

Как сделать, чтобы мувиКлип принадлежал определенному фрейму? (это возможно?)
Можно ли actionScriptom создать фрейм? (количество фреймов может быть любым, равным числу слайдов)

Или я принципиально неверно мыслю и есть способ проще?

P.S. Если не сложно с примерами кода - это мой первый опыт с flash.

Homo Sapiens
17.07.2006, 01:08
ну, ты можешь сделать проще
_root.createEmptyMovieClip("logo_mc", 1);
logo_mc.loadMovie(Objects[j].attributes.path);
logo_mc._visible = false;
а на нужном кадре сделать его видимым.

MINASTIS
17.07.2006, 10:15
МОжно сделать так. Создаешь вручную в редакторе пустой мувиклип в ТОМ фрейме, который тебе надо. И в него кидаешь картинку или чего там. И картинка остается в ТОМ фрейме, который надо. Это же логично.

El Scream
17.07.2006, 11:48
На сколько я понимаю твою проблему, ты мыслишь все таки неправильно. Дело не во фреймах, а в виртуальных слоях на которых находятся все объекты, на каждый объект по слою. Определить на каком слое находится объект можно функцией this.getDepth() (пример смотрим в хелпе), соответственно при создании клипа в параметрах нужно указывать номер слоя. нумерация происходит от минус бесконечности до плюс бесконечности. просто существующие слои идут в виде списка. кстати если уж затронули эту тему, то кто может подсказать где на форуме можно будет найти топик или статейку про правильную организацию загрузок на слои, у меня просто проблема в создании n (n много больше 100) объектов посредством ActionScript.

Lodeon
18.07.2006, 22:43
ну, ты можешь сделать проще
на нужном кадре сделать его видимым.

представим, что на нужном слайде у нас лежит 6 картинок и 12 текстовых надписей, чтобы перелеснуть слайд, пробегаем в цикле сначала все на текущем слайде, чтобы их сделать невидимыми, а затем на следующем, чтобы сделать видимыми, нормальный такой цикл получается. Да, нам ведь еще надо хранить массив "чего для каждого слайда показовать" - не очень оптимально...

Lodeon
18.07.2006, 22:45
Создаешь вручную в редакторе пустой мувиклип в ТОМ фрейме, который тебе надо. И в него кидаешь картинку

вполне, но если Вы прочитаете внимательнее мой пост, то увидите, что число слайдов неограничено, а создать очень большое число слайдов, как можно понять не оптимально... :mad:

Дело не во фреймах, а в виртуальных слоях на которых находятся все объекты, на каждый объект по слою.

Вы, видимо, предлагаете когда нам понадобится увидеть объекты поднять их наверх, а ненужные опустить вниз... смотрим мой ответ Homo Sapiens, опять не оптимально получается...:D

Может, я недавно программирую во flash, но опыта в программировании в целом мне хватает. Не люблю недо- решения.

Книжек уже изрядно полистал, но ничего удачного пока не придумал.
Может кто-ть предложить другой подход или свежую идею?:rolleyes:

2 Moderator Подкорректировал название темы, может, в ActionScript перенести?

iNils
19.07.2006, 01:50
Для раздела ActionScript рановато. Вы простых вещей не понимаете. Единственный разумный вариант предложил Homo Sapiens, но сути вы его не поняли. Объясняю, грузите вы свой xml, по числу слайдов в нем создаете по порядку такое же число пустых мувиклипов и делаете их невидимыми (естесственно с помощью _visible=false) кроме первого, далее наполняете его чем нужно (правда если у вас 100 "слайдов"-клипов и в каждом видео или тяжелая артинка, то памяти у вас уйдет много и слабые машины не потянут. поэтому тут логичнее грузить скажем не все сразу, а только на 5-10 слайдов вперед, а потом подгружать, а ушедшие слайды выгружать, все равно потом из кеша можно будет взять), но не в сам клип одну картинку, а делаете из него контейнер. Потом вы просто, без всякого цикла делает текушему "слайду"-клипу _visible=false, а на тот который перешли _visible=true.