Xpoint
   [напомнить пароль]

Подгрузить в ролик jpg файлы с CD-диска (кол-во и имена файлов известны)

Метки: [без меток]
2008-05-22 17:46:45 [обр] Владимир Клемято[досье]
Презентация запускается автоматом с Cd-rom'a. По переходу в меню требуется загрузка нескольких jpg-файлов в ролик. Имена файлов для загрузки известны и известно название папки с jpg-файлами, но не известен диск привода Cd-ROM'а.
Вопрос: какие функции использовать для подгрузки внешних битовых файлов, с учетом того, что флэш-ролик запускается локально?
По возможности оставьте практический пример кода.
спустя 15 часов [обр] Алексей В. Иванов(276/2861)[досье]
А ваш flash не с того же CD-ROM запускается?
Тут только перебором (от C: до Z:), но это очень плохое решение, не рекомендую.
спустя 4 часа 37 минут [обр] Владимир Клемято[досье]
Алексей В. Иванов[досье] Вы правы. Флэшка запускаетмя с того же CD-ROM'а.
спустя 24 минуты [обр] Алексей В. Иванов(276/2861)[досье]
Тогда относительные пути должны работать. Просто указывайте путь от корня, без буквы диска.
спустя 3 дня [обр] Владимир Клемято[досье]
Алексей В. Иванов[досье]
Извините, но не могли бы Вы привести часть кода для данных действий? Каким образом (используя какой код) можно подгружать файлы изображений?
спустя 2 часа 44 минуты [обр] Алексей Севрюков(1/1280)[досье]
Владимир Клемято[досье] Допустим Вы запускаете флешку из корня CD, а картинки находятся в папке images. Для того чтобы подгрузить картинки используйте путь images/imgname.jpg или ./images/imgname.jpg. По идее это должно работать.
спустя 11 часов [обр] Алексей В. Иванов(276/2861)[досье]
Да, по-идеи это должно работать:
movieClipName.loadMovie('images/imgname.jpg')
Также, обратите внимание, что Flash не поддерживает JPG-картинок с progressive-сжатием (по крайней мере до 8-го плеера так было, сейчас не знаю).
спустя 8 часов [обр] Владимир Клемято[досье]

Алексей Севрюков[досье] и Алексей В. Иванов[досье]

Решение, которое мне требовалось:

for (var i:Number = 1; i < 3; i++) {
str = "Image" + i;
laststr = "lastImage" + i;
var newImage:MovieClip = this.createEmptyMovieClip(str, i);

str._x=200; // Не прокатывает смещение str. Как реализовать, чтобы картинка на картину не загружалась?
str._y=150; // Не прокатывает смещение str

loadMovie("moyakartinka-"+i+".jpg", str);
var lastImage:MovieClip = this.createEmptyMovieClip(laststr, this.getNextHighestDepth());
}

проблема в том, что loadMovie занружает картинку относительно главной сцены в левый верхний угол. Как указать в коде, какое-то смещение по х и у для кажого подгружаемого объекта str?

спустя 49 минут [обр] Алексей В. Иванов(276/2861)[досье]
У строки нет свойств _x/_y.
Правильный код (не проверял):
for (var i:Number = 1; i < 3; i++) {
  var newImage:MovieClip = this.createEmptyMovieClip("Image" + i, i);
  newImage._x = 200 * i;
  newImage._y = 150;
  newImage.loadMovie("moyakartinka-"+i+".jpg");
}
спустя 20 часов [обр] Владимир Клемято[досье]
Алексей В. Иванов[досье]
Скажите, а могут картинки, точнее создаваемые мувики (Image1,Image2), быть кнопкой (button) по нажатию на которую будет происходить загрузка другого мувика или исполняться AS?
спустя 1 час 15 минут [обр] Алексей В. Иванов(276/2861)[досье]
Да, достаточно определить свойство onRelease или onPress у нужного мувиклипа.
Т.е. movieClip.onRelease = function() { trace('click') }
Сейчас точно не скажу, будет ли это работать, если это на клип ДО загрузки повесить (если память не изменяет, то обработчики очищаются при загрузке клипа), но если не работает, то для контейнера обработчик определите.
спустя 1 день 1 час [обр] Владимир Клемято[досье]

Алексей В. Иванов[досье]
Для контейнера обработчик определите??? Поясните, пожалуйста (я про код).

movieClip.onRelease = function() { trace('click') }

не срабатывает не до, не после загрузки. Смотрел в нете, часто мелькают про:

onEnterFrame

Может как-то использовать в данном случае?

То, что есть сейчас:

for (var i:Number = 1; i < 3; i++) {
  var newImage:MovieClip = this.createEmptyMovieClip("Image" + i, i);
  newImage._x = 230 * (i - 1); // расположение по х
  newImage._y = 20; // расположение по y
  newImage.loadMovie("moyakartinka-"+i+".jpg");
  newImage.onEnterFrame = function() {
     trace('newImage');
     newImage.onRelease = function() { trace('click') }
     if (newImage._width){this.removeMovieClip();}
     }
  }
спустя 11 часов [обр] Алексей В. Иванов(276/2861)[досье]
onEnterFrame срабатывает много раз в секунду, он тут не нужен. Его используют для того, чтобы отследить момент загрузки, но в данном случае не надо обработчик на него же вешать (newImage).
Я бы сделал так (не проверял):
for (var i:Number = 1; i < 3; i++) {
  var newImage:MovieClip = this.createEmptyMovieClip("Image" + i, i);
  newImage.createEmptyMovieClip('image', 1);
  newImage._x = 230 * (i - 1);
  newImage._y = 20;
  newImage.image.loadMovie("moyakartinka-"+i+".jpg");
  newImage.onRelease = function() {
    trace('click') 
    this._parent.removeMovieClip();
  }
}
спустя 9 часов [обр] Владимир Клемято[досье]

Алексей В. Иванов[досье] Мало встречал такиех людей, которые дают столь дельные советы. Спасибо. Код работает и выполняет поставленную задачу.

Хотел бы задать Вам вопрос. В том случае, если картинок в мувике будет, скажем 30 шт., и таких сцен (с содержанием по 30 изображений) будет около 10, при последовательном переходе по страницам весь объем данных этих изображений будет грузиться в оперативную память компьютера, что непременно вызовет "тормоза" при проигрывании мувика. Собственно вопрос, как оптимизировать или обеспечить выгрузку всех картинок из памяти при переход к другой сцене?

Кроме того хотелось бы узнать ваше мнение: на картинк мы повесили trace, можно ли повесить мувик, который бы загружал большое изображение (типа галереи) в данную сцену, но показываль большое изображение в реальных размерах (с полосой прокрутки, если изображение больше экранного) и пользователь мог закрыть данное большое изображение и вернуться в предыдущую сцену? Для меня это действительно очень важно, буду благодарен за Вашу помощь.

спустя 15 часов [обр] Алексей В. Иванов(276/2861)[досье]

С помощью mc.removeMovieClip() можете удалять со сцены мувиклипы, их "сборщик мусора" подберёт. Второй способ: в те же клипы загружать картинки (mc.loadMovie() очищает объект перед загрузкой нового)

можно ли повесить мувик, который бы загружал большое изображение (типа галереи) в данную сцену, но показываль большое изображение в реальных размерах (с полосой прокрутки, если изображение больше экранного) и пользователь мог закрыть данное большое изображение и вернуться в предыдущую сцену?

Можно, но вам лучше посмотреть готовые решения flash-галерей. Я успеваю отвечать только на короткие и конкретные вопросы :)

Powered by POEM™ Engine Copyright © 2002-2005