Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Flash > Как так?


Автор: elFenok 23.8.2005, 09:56
http://www.velvetrevolution.ru

У него флэш мувик, не понимаю вообще его структуру, как у него идет сразу несколько загрузок клипов в одном флэш мувике??
smile
Кто посмотрел разъясните поподробнее

вообщем сайт то ниче сделан smile


smile

Автор: AlDev 23.8.2005, 11:40
всмысле несколько загрузок в одном?
я тут писал класс, позволяющий следить за общим прогрессом:
http://forum.vingrad.ru/index.php?showtopic=60991&view=findpost&p=499122

Автор: elFenok 24.8.2005, 07:51
понимаешь у него там несколько окошек блин как будто штук 5-6 фреймов
и вот разные кнопки отвечающие за события фреймов так вот при нажатии на кнопки у кажого ферйма идет своя загрузка smile
как так smile

Автор: AlDev 24.8.2005, 08:10
эм... что именно-то непонятно?
как разные окошечки подгружаются? или что?

Автор: elFenok 24.8.2005, 12:21
там прелоадеры в нескольких окнах
как так сделать?

НЕСКОЛЬКО ПРЕЛОДЕАРОВ smile

Автор: flashgc 24.8.2005, 23:25
хех... smile Делать их надо как и обычный прелоадер...

Я даже писал по этому урок:

Цитата

1.На главной сцене создайте кнопку
2.Вставьте туда сдедующее:
Код

on (press) { 
   mc.dot.loadMovie("image.jpg");//здесь прописываем путь к картинке (полный или относительный); можно использовать переменную 
} 


3.В этом же кадре создайте мувклип. Назовем его "mc"
4.В этом мувклипе создайте текстовое динамическое поле. Присвойте этому полю переменную "txt"
5.Создайте в мувклипе "mc" мувклип "dot", в который вставьте:
Код

onClipEvent (enterFrame) { 
   l = this.getBytesLoaded();//определяем сколько уже загружено 
   t = this.getBytesTotal();//определяем вес картинки 
              l2=Math.floor(l/1024)//переводим байты в килобайты 
              t2=Math.floor(t/1024)//переводим байты в килобайты 
   _parent.txt = l2+" / "+t2;//прописываем полученную информацию в текстовое поле 
   if (l<t) { 
      this.createEmptyMovieClip("p", 1);//создаем мувклип, в котором будем рисовать линию загрузки 
      p.lineStyle(5, 0x003399, 100);//стиль линии 
      p.moveto(0, 0);//устанавливаем начальные координаты линии 
      p.lineto(Math.round(100*l/t), 0);//растягиваем линию 
   } else {//если загружено 
      this._parent.txt = ""; 
      p.removeMovieClip();//удаляем линию загрузки 
   } 
} 

6.Готово
Теперь, при нажатии на кнопку, картинка (или .swf файл) будет загружаться и будет показываться сколько загружено.


Тут происходит загрузка в мувклип "mc". Соответственно, если тебе надо загрузить в другой мувклип (или фрэйм, как ты выразился) что-либо, надо просто вместо "mc" написать другое имя мувклипа.
smile

Автор: AntonioBanderaz 25.8.2005, 02:21
Цитата(elFenok @ 24.8.2005, 07:51)
понимаешь у него там несколько окошек блин как будто штук 5-6 фреймов
и вот разные кнопки отвечающие за события фреймов так вот при нажатии на кнопки у кажого ферйма идет своя загрузка smile
как так smile

непонимаю что теьбе именно надо, как загрузить клип в клип чтоль....
Как понять ФРЕЙМЫ, т.е. что Ты под ними подразумеваешь?...

Структура не такая иш и сложная, разбито на несколько клипов, допустим left, right, top, bottom. В которых свой загрущик, Ты кидаешь что грузить - он загружает... Как тебе выше уже сказали.... =)))

Автор: AlDev 25.8.2005, 02:52
elFenok, ну есть у тебя допустим n клипов, к которым надо сделать прелоадеры.
пишем:
Код

class com.batsuev.UI.preloader extends MovieClip
{
  public var onLoad:Function;
  public function preloader()
  {
  }
  public function set mcl_object(mcl:MovieClipLoader):Void
  {
    this.setValue(0);
    var ths:Object = this;
    var list:Object = new Object();
    list.onLoadInit = function()
    {
      ths.setValue(1);
      ths.onLoad();
    }
    list.onLoadProgress = function(target_obj:Object,loaded:Number,total:Number):Void
    {
      if (total!=0)
      {
        ths.setValue(loaded/total);
      }
    }
  }
  private function setValue(v:Number):Void
  {
    this['status_text_field'].text = (Math.round(v*100)).toString();
  }
}

ложим в библиотеку клип, создаём в нём dynamic text field с именем status_text_field и выставляем клипу в linkage as2 class - com.batsuev.UI.preloader. и итендификатор ему выставляем, например, preloader
далее в массиве, куда что-то подгружается:
Код

var mcs:Array = new Array(this['mc_1'],this['mc_2'],this['mc_3']);
var urls:Array = new Array('movie_1.swf','movie_2.jpg','movie_3.swf');
var mcls:Array = new Array();
var preloaders:Array = new Array();
var i:Number;
for (i=0;i<mcs.length;i++)
{
  preloaders[i] = this.attachMovie('preloader', 'preloaderInstance_'+i.toString());
  preloaders[i].onLoad = function()
  {
    this.removeMovieClip();
  }
  mcls[i] = new MovieClipLoader();
  preloaders[i].mcl_object = mcls[i];
  mcls[i].loadClip(urls[i],mcs[i]);
}
stop();


всё, имеем одновременную загрузку с прогрессом сразу нескольких клипов.
Код может не работать, я его не проверил. Flash-а под рукой нету.

Автор: elFenok 25.8.2005, 09:44
спасибо буду экспериментировать! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)