Проблема с копией мс в который что либо подгружается @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 15 ] 
*   Список форумов / Технологии изображения / Flash » ответить » создать топик « | »
Автор Сообщение
mzd1e
новый человек
0
Сообщения: 18
Зарегистрирован: 08.06.05
Заголовок сообщения: Проблема с копией мс в который что либо подгружается
Сообщение Добавлено: 15 Февраль 2006, 15:59:52 
Существует некий_символ в который единожды подгружается внешняя свф.
все грузится.
если создать копию некого_символа в следующем кадре,
то все по прежнему грузится (в обоих кадрах).
но если копия находится в том же кадре, то внешняя свф отображается только в одном из неких_символов.

как, один раз подгрузив, заставить ее (внешнюю свф) отображаться в нескольких копиях, в одном и том же кадре?
BlooDHounD Муж.
соучастник
0
Сообщения: 585
Зарегистрирован: 12.03.04
Откуда: Беларусь - Борисов
Сообщение Добавлено: 15 Февраль 2006, 16:36:15 
ого! уважаемы, а вы сами-то поняли, что написали?
mzd1e
новый человек
0
Сообщения: 18
Зарегистрирован: 08.06.05
Сообщение Добавлено: 15 Февраль 2006, 17:52:54 
BlooDHounD, если бы не понял сам, то постарался бы написать понятнее :laugh:
серьезно что ли не понятно?
mzd1e
новый человек
0
Сообщения: 18
Зарегистрирован: 08.06.05
Сообщение Добавлено: 15 Февраль 2006, 18:16:25 
вот пример http://www.vlad-auto.ru/mzd1e/2deforum.swf (1,2 kb)
при этом если копию переместить в следующий кадр,
то все работает.

код:
nekii_simvol.createEmptyMovieClip ("container", 0)
nekii_simvol.container.loadMovie ("../vneshnya_swf.swf")
Король Муж.
участник
18
Сообщения: 1352
Зарегистрирован: 24.07.04
Сообщение Добавлено: 15 Февраль 2006, 20:28:08 
mzd1e, ты хочешь чтоб у тебя в одном кадре было 2 мувика с одним названием,? не выйдет. то-есть выйдет, но обратиться программно можно будет только к одному

_________________
Здравствуй, Олимпийский!
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Сообщение Добавлено: 16 Февраль 2006, 00:07:25 
можно поробывать делать так : после того как swf-ка загрузилась в клип , делать копии этого клипа, хотя это тоже самое если имеем несколько клипов с разными именами , и в них грузить эту swf-ку.
mzd1e
новый человек
0
Сообщения: 18
Зарегистрирован: 08.06.05
Сообщение Добавлено: 16 Февраль 2006, 03:36:08 

Цитата:
Король: ты хочешь чтоб в одном кадре было 2 мувика с одним названием?


нет, главная задача - загрузив свф (один раз!) работать с ней как с существующим мувиКлипоп. пусть будет 10 (можно тысяч) мувиков, и все с разным названием, но что бы в них отображалась внешняя свф.


Цитата:
Eduard: делать копии этого клипа


пытался, не получается (дубликатМувиКлип). дублировал как существующий некий_символ так и создаваемый в нем контейнер.
Король Муж.
участник
18
Сообщения: 1352
Зарегистрирован: 24.07.04
Сообщение Добавлено: 16 Февраль 2006, 03:48:31 

Цитата:
нет, главная задача - загрузив свф (один раз!) работать с ней как с существующим мувиКлипоп



если под "работать" подразумевается дублировать - то это невозможно. смирись и грузи из кеша

_________________
Здравствуй, Олимпийский!
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 16 Февраль 2006, 04:00:06 
гыгы
ты можешь дублировать клип а не его подгружаемое содержимое. это же азы.

Контрольный вопрос в голову: Это содержимое клипа = визуальное, статичное? Если да - то есть варианты с восьмым плейером.

_________________
можно на ТЫ.
mzd1e
новый человек
0
Сообщения: 18
Зарегистрирован: 08.06.05
Сообщение Добавлено: 16 Февраль 2006, 04:33:09 

Цитата:
Король: смирись и грузи из кеша


как так? :cry:


Цитата:
bE(o0L:ты можешь дублировать клип а не его подгружаемое содержимое


я написал что не получается - (дублировал как существующий некий_символ...), тоесть не дает результата.


Цитата:
bE(o0L:содержимое клипа = визуальное, статичное?


визуальное, но к сожалению не статичное (это какая то анимация).
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 16 Февраль 2006, 14:44:04 
mzd1e, всё во многом зависит от того что именно ты грузишь и в какой версии работаешь.

решение для версии ниже 8-ки: практически нет.
т.е. есть, но это решение с повторной загрузкой и надеждой на кэш.
короче, отстой полный.
рассмотри также возможность использования shared мувиклипов,
редко, но такое решение может помочь.

решение для 8ки и выше: есть, но тоже с ограничениями.
ты легко можешь загрузить картинку, тут же создать из нее битмап и
оставить жить этот битмап до следующего запроса.
у меня для этого написан класс, правда он не отшлифован, но юзать можно.
я приведу его ниже.

таким образом, ты можешь поступать только с картинками.
если речь идет об SWF с анимацией и/или кодом, то такое решение не подойдет.

классы для работы с картинками
(внимание, классу classes.lib.PicturesLibrary требуется залинкованный мувиклип
этот клип нужно поместить на сцену и задать ему класс classes.lib.PicturesLibrary
также в этом клипе должен быть рисунок, который покажется если загрузка не удалась):
Код:
  /**
  * @author Ivan Dembicki<br>
  * http://www.dembicki.org<br>
  * mailto: dembicki --at-- narod --dot-- ru<br>
  * &copy; 2006, Ivan Dembicki
  * 
  * @version 1.1<br>
  * January 0, 2006<br>
  * please check updates: http://www.dembicki.org
  *
  **/
 
import flash.display.BitmapData;
import org.dembicki.PicturesLibraryInstance;

class org.dembicki.PicturesLibrary extends MovieClip {
   
   static var _instance:PicturesLibrary;
   private var pictures_mcl:MovieClipLoader;
   private var unique_url_obj:Object;
   private var error_bmp:BitmapData;
   
   private function PicturesLibrary() {
      this.error_bmp = new BitmapData(this._width, this._height, true, 0);
      this.error_bmp.draw(this);
      PicturesLibrary._instance = this;
      this.pictures_mcl = new MovieClipLoader();
      this.unique_url_obj = {};
      pictures_mcl.addListener(this);
      this._visible = false;
      _global.ASSetPropFlags(this, ["pictures_mcl", "unique_url_obj", "error_bmp"], 7);
   }
   
   function getBitmap(url:String, listener_obj:Object):PicturesLibraryInstance {
      if (!url.length) {
         url = "link_undefined";
      }
      var name:String = url.split(".").join("_").split("/").join("_").split("\\").join("_");
      var obj:PicturesLibraryInstance = unique_url_obj[name];
      if (!obj) {
         var obj:PicturesLibraryInstance = new PicturesLibraryInstance(url);
         unique_url_obj[name]= obj;
         obj.addListener(listener_obj);
         this.preloadPicture(url, obj);
         return obj;
      }
      obj.addListener(listener_obj);
      if (!obj.loaded) {
         return obj;
      }
      obj.broadcastMessage("onGetBitmap", obj.pict_bmp, obj.url);
      obj._listeners = [];
      return obj;
   }
   private function preloadPicture(url:String, obj:PicturesLibraryInstance) : Void {
      var preload_mc:MovieClip = this.createEmptyMovieClip(obj.name, this.getNextHighestDepth());
      this.pictures_mcl.loadClip(url, preload_mc);
   }
   private function onLoadProgress(target_mc:MovieClip, loaded:Number, total:Number) : Void {
      var obj:PicturesLibraryInstance = unique_url_obj[target_mc._name];
      obj.broadcastMessage("onLoadBitmapProgress", loaded, total);
   }
   private function onLoadError(target_mc:MovieClip) : Void {
      var obj:PicturesLibraryInstance = unique_url_obj[target_mc._name];
      obj.broadcastMessage("onGetBitmap", this.error_bmp);
      delete unique_url_obj[target_mc._name];
   }
   private function onLoadInit(target_mc:MovieClip) : Void {
      var obj:PicturesLibraryInstance = unique_url_obj[target_mc._name];
      obj.pict_bmp = new BitmapData(target_mc._width, target_mc._height, true, 0);
      obj.pict_bmp.draw(target_mc);
      if (obj.pict_bmp) {
         obj.loaded = true;
         obj.broadcastMessage("onGetBitmap", obj.pict_bmp, obj.url);
         obj._listeners = [];
      }
      target_mc.removeMovieClip();
   }
}


Код:
/**
 * @author © 2006 Ivan Dembicki, dembicki@narod.ru, http://www.dembicki.org
 * @version 1.0
 */
import flash.display.BitmapData;

class org.dembicki.PicturesLibraryInstance {
   
   public var pict_bmp:BitmapData;
   public var url:String;
   public var name:String;
   public var loaded:Boolean;
   public var _listeners:Array;

   function PicturesLibraryInstance (url:String) {
      AsBroadcaster.initialize(this);
      this.url = url;
      this.name = url.split(".").join("_").split("/").join("_").split("\\").join("_");
      this.loaded = false;
   }
   // AsBroadcaster
   function addListener(listenerObj:Object):Boolean {
      return false;
   };
   function broadcastMessage(eventName:String):Void {
   };
   function removeListener(listenerObj:Object):Boolean {
      return false;
   };
   
}


использование:

Код:
import org.dembicki.PicturesLibrary
import flash.display.BitmapData;

PicturesLibrary._instance.getBitmap("any_url.png", this);

function onLoadBitmapProgress (loaded:Number, total:Number) {
   // code here
}
function onGetBitmap (pict_bmp:BitmapData, url:String) {
   if (url.length) {
      // значит загрузилось
   } else {
      // не загрузилось
   }
}


итак, командой getBitmap инициируем загрузку
методом onLoadBitmapProgress слышим процесс
методом onGetBitmap получаем битмап (даже если не загрузилось,
тогда получаем битмап изображения в мувике PicturesLibrary)
определяем загрузилось или нет по аргументу url.
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 16 Февраль 2006, 14:45:32 
mzd1e, писал, писал, отправил и тока обнаружил,
что у тебя анимашка в мувике.
тогда только расшаривать мувик.…
mzd1e
новый человек
0
Сообщения: 18
Зарегистрирован: 08.06.05
Сообщение Добавлено: 16 Февраль 2006, 18:00:24 
_iv, все равно спасибо, вполне возможно, что ваш код пригодится :yes:

мне кажется, что в нашем мире нет справедливости. :cry:
ctrlaltdel Муж.
соучастник
13
Сообщения: 866
Зарегистрирован: 17.02.05
Сообщение Добавлено: 17 Февраль 2006, 13:39:22 
вывеси сурсы … .чтоб не декомпайлить ….

_________________
Вы смеётесь над нами , потому что мы отличаемся от вас,
а мы смеёмся над вами, потому что вы НЕ отличаетесь друг
от друга
mzd1e
новый человек
0
Сообщения: 18
Зарегистрирован: 08.06.05
Сообщение Добавлено: 17 Февраль 2006, 15:56:49 
ctrlaltdel, вот-с: http://www.vlad-auto.ru/mzd1e/2deforum.rar (5 kb)
и грузит он вот эту штуку (просто прямоугольник зеленого цвета,
сурс на который я думаю не потребуется): http://www.vlad-auto.ru/mzd1e/vneshnya_swf.swf (0,8 kb)
*   Список форумов / Технологии изображения / Flash « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 15 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100