Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.05.2006, 18:46
Danilishin вне форума Посмотреть профиль Найти все сообщения от Danilishin
  № 1  
Ответить с цитированием
Danilishin
 
Аватар для Danilishin

Регистрация: Aug 2004
Сообщений: 83
По умолчанию Как перемещать и копировать объекты?

Объясню суть вопроса.
Есть мувиклип mc_image, который принадлежит одному родительскому мувиклипу mc_canvas1, а также есть еще один мувиклип mc_canvas2, без всяких подчиненных мувиклипов:

mc_canvas1.mc_image
mc_canvas2


Нужно:
Задача 1. Переместить мувиклип от одного родительского мувиклипа к другому, после чего - в первом родителе больше не существует подчиненного мувиклипа, а во втором он есть:

mc_canvas1
mc_canvas2.mc_image

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

mc_canvas1.mc_image
mc_canvas2.mc_image


Замечания:
1. дублирование методом duplicateMovieClip() не решает задачи, так как сдублированный мувиклип принадлежит тому же родителю, как и мувиклип-оригинал, и его все равно надо как-то переместить.
2. если записать mc_canvas2.mc_image = mc_canvas1.mc_image, то мы получим ситуацию, когда оба мувиклипа mc_image разных родителей есть физически один и тот же, просто один ссылается на другого. Это следствие того, что объекты MovieClip являются ссылочными типами данных.

Как эти задачи можно решить?

Старый 25.05.2006, 19:01
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
1)Перемещать мувики из одного родителя в другой не возможно
как вариант можно эммулировать это путем удаления\аттача мувика.
2) аналогично, копировать можно только в пределах одного родителя
юзай removeMovieClip\attachMovie
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 25.05.2006, 19:12
Danilishin вне форума Посмотреть профиль Найти все сообщения от Danilishin
  № 3  
Ответить с цитированием
Danilishin
 
Аватар для Danilishin

Регистрация: Aug 2004
Сообщений: 83
Аттач не катит, так как мувиклип mc_image в данном случае не из библиотеки берется, он создается программно и в него загружается ролик (или jpeg-картинка) из внешнего файла. В проекте нужно чтобы в другом месте, в другом мувиклипе создавалась его копия, при этом не приходилось повторно грузить из сервера на клиент. А также есть ситуации, где этот мувиклип нужно перемещать.
Т.е. суть в том, чтобы загрузить ролик из файла один раз, и была возможность делать его копию в другом мувиклипе, а также перемещать в другой мувиклип.


Последний раз редактировалось Danilishin; 25.05.2006 в 19:14.
Старый 25.05.2006, 19:25
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
В чем суть понятно, но перечитай пост Nirth'a еще раз. То что ты хочешь получить без повторной загрузки не возможно.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 25.05.2006, 20:09
sem1313 вне форума Посмотреть профиль Отправить личное сообщение для sem1313 Найти все сообщения от sem1313
  № 5  
Ответить с цитированием
sem1313

Регистрация: Feb 2006
Сообщений: 588
По умолчанию всё загруженное кэшируется, поэтому загрузивши фотку один раз, ты можешь безболезненно(читай - без повторной загрузки) грузить(простите за тафталогию) её ещё раз. Я так поступал, когда делал галерею, грузил полноразмерные фотки, затем задавал меньшие размеры, получалось это все в виде иконок, нажав на которые вызывалась повторная загрузка фотографий, но так как они в кэше, то они ессесно отображались сразу без загрузки.

Но если кэширование так критично, то можно воспользоваться Bitmap, насколько мне известно, он может дублировать изображения.

Старый 26.05.2006, 06:57
breez38 вне форума Посмотреть профиль Отправить личное сообщение для breez38 Найти все сообщения от breez38
  № 6  
Ответить с цитированием
breez38
 
Аватар для breez38

Регистрация: Nov 2005
Адрес: Иркутск
Сообщений: 233
Отправить сообщение для breez38 с помощью ICQ
Если мувики создаются полность программно, то можно сделать класс-обертку для мувиклипа, который бы хранил все свойства мувика (ширину, длину, прозрачность и т.д.) и мог бы аттачить к себе себеподобных. А картинки можно кэшировать при помощи BitmapData, что не перезагружать по нескольку раз.
__________________
Никогда не может быть так плохо, чтоб не могло быть еще хуже!

Старый 26.05.2006, 12:02
Danilishin вне форума Посмотреть профиль Найти все сообщения от Danilishin
  № 7  
Ответить с цитированием
Danilishin
 
Аватар для Danilishin

Регистрация: Aug 2004
Сообщений: 83
А что такое Bitmap и BitmapData? Это есть в ActionScript 2.0, или это появилось в третей версии языка? Во второй версии искал, но не нашел.

Старый 26.05.2006, 12:06
breez38 вне форума Посмотреть профиль Отправить личное сообщение для breez38 Найти все сообщения от breez38
  № 8  
Ответить с цитированием
breez38
 
Аватар для breez38

Регистрация: Nov 2005
Адрес: Иркутск
Сообщений: 233
Отправить сообщение для breez38 с помощью ICQ
BitmapData - доступен, начиная с флеш 8. Класс позволяет хранить картинки в памяти, "рисовать" их на мувиклипе, изменять попиксельно, накладывать фильтры.
__________________
Никогда не может быть так плохо, чтоб не могло быть еще хуже!


Последний раз редактировалось Nirth; 27.05.2006 в 09:10.
Старый 26.05.2006, 12:27
Danilishin вне форума Посмотреть профиль Найти все сообщения от Danilishin
  № 9  
Ответить с цитированием
Danilishin
 
Аватар для Danilishin

Регистрация: Aug 2004
Сообщений: 83
А, понятно, у меня седьмой флеш, потому и не нашел

Старый 26.05.2006, 17:56
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 10  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
единственное что.
при настройках ActionScript 1.0 import не воспринимается тоесть код
Код:
import flash.display.BitmapData
createEmptyMovieClip("mc",1).attachBitmap(new BitmapData(200,200,false,0xFF6600),2,"auto",true);
работать не будет, нужно писать имя класса полностью с пакетом
Код:
createEmptyMovieClip("mc",1).attachBitmap(new flash.display.BitmapData(200,200,false,0xFF6600),2,"auto",true);
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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