Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Копирование подгружаемого мувиклипа (http://www.flasher.ru/forum/showthread.php?t=101467)

Adskij 19.09.2007 02:35

Копирование подгружаемого мувиклипа
 
Есть ли в Action Script 2 возможность скопировать динамически подгружаемый мувиклип? То есть например:
Код:

import flash.display.BitmapData;
this.createEmptyMovieClip("clip_mc",this.getNextHighestDepth());
clip_mc.loadMovie("1.swf");
this.createEmptyMovieClip("clip_copy_mc",this.getNextHighestDepth());
clip_copy_mc._x = 300;
var mcData:BitmapData = new BitmapData(100, 100);
mcData.draw(clip_mc);
clip_copy_mc.attachBitmap(mcData,_root.getNextHighestDepth());

Если не создавать динамически clip_mc, а нарисовать его на сцене, то все работает, а если же загружать в него, то нет.
Теперь собственно два вопроса:
1) Как скопировать?
2) Если нельзя, то как сделать что бы флеш брал подгружаемый файл (swf) из кеша?

Спасибо ;)!

Wolsh 19.09.2007 10:20

1) В хелпе ясно написано, что нельзя дублировать
2) Гораздо сложней сделать, чтоб он не брал его из кэша :)

Adskij 19.09.2007 17:32

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

var my_mcl:MovieClipLoader = new MovieClipLoader();
var myListener:Object = new Object();
my_mcl.addListener(myListener);
/*
... функции отслеживания степени загрузки файла...
*/
this.createEmptyMovieClip("clip_mc",this.getNextHighestDepth());
my_mcl.loadClip(loadSWF,clip_mc);

В переменную loadSWF при нажатии на пункт меню записывается имя файла, который надо подгрузить - 1.swf, 2.swf и т.д. Но каждый раз файл загружается заново. Или для каждого загружаемого файла нужно создавать свой контейнер?

Wolsh 19.09.2007 17:43

Сколько же свф-файлов у Вас сейчас в кэше?

Adskij 19.09.2007 18:16

Вообщето это флеш сайт. Грузится основная флешка, в ней меню - 5 кнопок, при нажатии на пункт меню подгружается соответствющий swf-файл. Всего файлов 5. Размер 30-500 кб.

Adskij 19.09.2007 18:20

Вот только что очистил кеш, все равно не грузит. Браузеры IE и Mozzila последних версий.

Kikasso 19.09.2007 18:31

Он грузится заново из кеша броузера. А продублировать с помощью BitmapData легче легкого.
Тольно надо дождаться загрузки -----> MovieClipLoader

Adskij 19.09.2007 18:41

Так все дальнейшие действия и происходят только после срабатывания myListener.onLoadInit. Можно примерчик с BitmapData? А берет может и из кеша, но траффик считает(

Wolsh 19.09.2007 20:11

:) Я, собственно, имел ввиду, что если флэш каждый раз грузит файлы по-новой, в кэше их должно изрядное количество накопиться - Вы не находите? Но Вы смело обошли мой вопрос :) Очистили кэш и ДАЖЕ (!) теперь из него не грузится...
По битмапдате. Если речь о картинках - то да, а скриншоты с клипов Вам зачем? Если там анимация?
А если это, простите, ВАШ сайт - то что же Вы в библиотеки всё что нужно не запихаете?

Adskij 19.09.2007 20:26

Спасибо всем за участие, сделал проще).
Теперь гружу каждый раздел в свой контейнер, а потом делаю проверку на повторную загрузку, и если раздел уже загружен, просто показываю нужный.
В смысле запихать в библиотеки?

Wolsh 19.09.2007 20:43

Да всё, проехали :)
Мне просто в голову бы не пришло, что нужно разделы сайта дублировать :)
для повторного показа. Я думал Вы какие-то клипы размножать хотите.

Kikasso 19.09.2007 20:52

Цитата:

Сообщение от Adskij
Можно примерчик с BitmapData?

Я в непонятке. У вас в первом посте примерчик. Битмапу можно клонировать, можно отрисовать в новую.

Adskij 20.09.2007 02:49

Та все, я уже понял, Битмап копирует изображение, я думал с его помощью можно скопировать весь мувиклип с анимацией.


Часовой пояс GMT +4, время: 12:19.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.