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

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

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

Регистрация: Sep 2004
Адрес: Екатеринбург
Сообщений: 60
Отправить сообщение для ЛяЛя с помощью ICQ
По умолчанию копирование клипа созданного программно

Подскажите пожалуйсто, как копировать мувиклип созданный программно в коде через new MovieClip. спасибо за ответы.

Старый 20.09.2010, 14:10
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Как что сделать? Опять написать new MovieClip(), нет? А как может быть создан мувиклип программно в коде? Это же спрайт. Или клип вытащенный из библиотеки? Или созданный с нуля мувиклип с addFrameScript присобачиваниями? Конкретнее, у меня навыки телепата не развиты, я прокачиваю другого перса.
__________________
тут я


Последний раз редактировалось КорДум; 20.09.2010 в 14:15.
Старый 20.09.2010, 14:25
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 3  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Скорее всего ЛяЛя создала муви-клип, и нарисовала в нём всёго разного, и теперь хочет создавать точно такие же клипы. Если так, то что бы скопировать нарисованное одного клипа в другой, существует метод copyFrom(object.graphic). Но как сказал уже КорДум, то мувиклип не обязательно для этого использовать, можно и спрайт, хотя в мувиклипе можно задавать доп.свойства (если спрайт не расширяете конечно)

Код AS3:
var c:MovieClip=new MovieClip()
 
c.graphics.beginFill(0xFFFF00,0.5);
c.graphics.drawCircle(20,20,15);
//-----------
c.graphics.beginFill(0xFF0000,1);
c.graphics.drawCircle(10,40,30);
 
addChild(c)
 
//создается пустой клип, но с таким же содержимым как предыдущий
var c2:MovieClip=new MovieClip();
c2.graphics.copyFrom(c.graphics)
addChild(c2);
c2.x=100

Старый 20.09.2010, 14:31
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Я хотел предложить примерно то же, только с методом примерно таким:
Код AS3:
...
var mc1:MovieClip = new MovieClip();
createGraphic(mc1);
 
var mc2:MovieClip = new MovieClip();
createGraphic(mc2);
...
 
private function createGraphic(mc:MovieClip):void {
    mc.graphics...
    bla-bla-bla
}
__________________
тут я

Старый 20.09.2010, 14:34
ЛяЛя вне форума Посмотреть профиль Отправить личное сообщение для ЛяЛя Найти все сообщения от ЛяЛя
  № 5  
Ответить с цитированием
ЛяЛя

Регистрация: Sep 2004
Адрес: Екатеринбург
Сообщений: 60
Отправить сообщение для ЛяЛя с помощью ICQ
смысл в том что я создаю мувиклип например mov1(загружаю bitmap, загржуаю swf (анимация), загружаю ещё другую swf (анимация, с активной кнопкой)) и мне надо сделать копию уже полученного mov1. А как это сделать не знаю.

Старый 20.09.2010, 14:39
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 6  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Ну, тогда мой метод и пригодится, только вместо графики грузим ваши запчасти.
ЗЫ. а почему именно MovieClip?
Достаточно будет спрайта, ибо, когда мы помещаем живую мышку в клетку, нам разве нужно, чтобы клетка тоже была живая?
__________________
тут я


Последний раз редактировалось КорДум; 20.09.2010 в 14:42.
Старый 20.09.2010, 16:01
ЛяЛя вне форума Посмотреть профиль Отправить личное сообщение для ЛяЛя Найти все сообщения от ЛяЛя
  № 7  
Ответить с цитированием
ЛяЛя

Регистрация: Sep 2004
Адрес: Екатеринбург
Сообщений: 60
Отправить сообщение для ЛяЛя с помощью ICQ
[quote=КорДум;937279]Ну, тогда мой метод и пригодится, только вместо графики грузим ваши запчасти.
[quote] расскажите об этом поподробнее как грузить.
потому что думала что раз у меня движения а почитала что спрайт (может не правильно поняла) не для движения, вот и использовала мувиклип.

Старый 20.09.2010, 19:18
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
расскажите об этом поподробнее как грузить.
А как вы грузите? Вы же писали:
Цитата:
загружаю bitmap, загржуаю swf (анимация), загружаю ещё другую swf (анимация, с активной кнопкой)
Так и надо грузить.

Цитата:
спрайт (может не правильно поняла) не для движения
Верно, только САМ спрайт не для движения, а в нем может быть все, что угодно, хоть тысячнокадровый ролик.
__________________
тут я

Старый 21.09.2010, 13:05
ЛяЛя вне форума Посмотреть профиль Отправить личное сообщение для ЛяЛя Найти все сообщения от ЛяЛя
  № 9  
Ответить с цитированием
ЛяЛя

Регистрация: Sep 2004
Адрес: Екатеринбург
Сообщений: 60
Отправить сообщение для ЛяЛя с помощью ICQ
здраствуйте! продолжаются мои мучения! не получается сделать то что хочется
вот код
Код AS3:
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.display.*;
import flash.utils.ByteArray;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.events.*;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
 
var magicNumber:Number;//Магическое число!:) Размер полного круга панорамы
var maxSpeed = 3;//Максимальная скорость перемещения панорамы
var speed:Number;//Текущая скорость и направление, заодно.
 
var holder:MovieClip=new MovieClip();//клип1 в который все складывается 
holder.x = 0;
holder.y = 0;
var holder2:MovieClip=new MovieClip();//клип2 в который все складывается
holder2.y = 0;
holder2.x = 0;
var mc:MovieClip=new MovieClip();// клип на сцене
mc.x = 0;
mc.y = 0;
 
var loaderBitmap2:Loader = new Loader();// для второго bg
var loaderBitmap:Loader = new Loader();// фон 
var urlRequestBitmap:URLRequest = new URLRequest("panorama.png");
loaderBitmap.load(urlRequestBitmap);
loaderBitmap.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadAllProgress);
loaderBitmap.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoadedB);
function fileLoadedB(e:Event):void
{
    loaderBitmap.x = 0;
    loaderBitmap.y = 0;
    magicNumber = loaderBitmap.width;
    loaderBitmap2.loadBytes(loaderBitmap.contentLoaderInfo.bytes);
    loaderBitmap2.y = 0;
    loaderBitmap2.x = 0;
}
 
var loaderMovie:Loader = new Loader();
var loaderMovie2:Loader = new Loader();
var urlRequestMovie:URLRequest = new URLRequest("vid01.swf");
loaderMovie.load(urlRequestMovie);
loaderMovie.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoaded);
loaderMovie.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadAllProgress);
function fileLoaded(e:Event):void
{
    loaderMovie.x = 270;
    loaderMovie.y = 71;
    loaderMovie.width = 174;
    loaderMovie.height = 233;
    loaderMovie2.loadBytes(loaderMovie.contentLoaderInfo.bytes);
    loaderMovie2.x = 270;
    loaderMovie2.y = 71;
    loaderMovie2.width = 174;
    loaderMovie2.height = 233;
}
 
var loaderMaska:Loader = new Loader();
var loaderMaska2:Loader = new Loader();
var urlRequestMaska:URLRequest = new URLRequest("maska.png");
loaderMaska.load(urlRequestMaska);
loaderMaska.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadAllProgress);
loaderMaska.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoadedMaska);
function fileLoadedMaska(e:Event):void
{
    loaderMaska.x = 265;
    loaderMaska.y = 0;
    loaderMaska.height = 350;
    loaderMaska2.loadBytes(loaderMaska.contentLoaderInfo.bytes);
    loaderMaska2.x = 265;
    loaderMaska2.y = 0;
    loaderMaska2.height = 350;
}
 
function onLoadAllProgress(e:ProgressEvent):void {
    //trace(e.bytesTotal);
}
 
 
holder.addChild(loaderBitmap);
holder.addChild(loaderMovie);
holder.addChild(loaderMaska);
holder2.addChild(loaderBitmap2);
holder2.addChild(loaderMovie2);
holder2.addChild(loaderMaska2);
holder2.x=900;
 
mc.addChild(holder);
mc.addChild(holder2);
addChild(mc);
mc.x=magicNumber;
// функция для панорамы
stage.addEventListener(Event.ENTER_FRAME,moveObjects);
function moveObjects(e:Event):void
{
    speed=(1-mouseX*2/stage.stageWidth)*maxSpeed;
    mc.x +=  speed;
    speed < 0 && mc.x <  -  magicNumber ? mc.x +=  magicNumber:null;
    speed > 0 && mc.x > 0 ? mc.x -=  magicNumber:null;
 
}
в итоге в holder2 нет ничего кроме bitmap. почему?

Добавлено через 12 минут
вариант второй тоже не работает
Код AS3:
package 
{
    import flash.net.URLRequest;
    import flash.net.URLLoader;
    import flash.display.*;
    import flash.utils.ByteArray;
    import fl.transitions.Tween;
    import fl.transitions.easing.*;
    import flash.events.*;
    stage.scaleMode = StageScaleMode.NO_SCALE;
    stage.align = StageAlign.TOP_LEFT;
 
    var magicNumber:Number;//Магическое число!:) Размер полного круга панорамы
    var maxSpeed = 3;//Максимальная скорость перемещения панорамы
    var speed:Number;//Текущая скорость и направление, заодно.
 
    var holder:MovieClip=new MovieClip();//клип1 в который все складывается 
    createClip(holder);
    var holder2:MovieClip=new MovieClip();//клип2 в который все складывается
    createClip(holder2);
    var mc:MovieClip=new MovieClip();// клип на сцене
    mc.x = 0;
    mc.y = 0;
 
    function createClip(mcc:MovieClip):void
    {
        var loaderBitmap:Loader = new Loader();// фон 
        var urlRequestBitmap:URLRequest = new URLRequest("panorama.png");
        loaderBitmap.load(urlRequestBitmap);
        loaderBitmap.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadAllProgress);
        loaderBitmap.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoadedB);
        var loaderMovie:Loader = new Loader();
        var urlRequestMovie:URLRequest = new URLRequest("vid01.swf");
        loaderMovie.load(urlRequestMovie);
        loaderMovie.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoaded);
        loaderMovie.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadAllProgress);
        var loaderMaska:Loader = new Loader();
        var urlRequestMaska:URLRequest = new URLRequest("maska.png");
        loaderMaska.load(urlRequestMaska);
        loaderMaska.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadAllProgress);
        loaderMaska.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoadedMaska);
        mcc.addChild(loaderBitmap);
        mcc.addChild(loaderMovie);
        mcc.addChild(loaderMaska);
    }
    function onLoadAllProgress(e:ProgressEvent):void
    {
        //trace(e.bytesTotal);
    }
    mc.addChild(holder);
    mc.addChild(holder2);
    addChild(mc);
    mc.x = magicNumber;
 
    function fileLoadedB(e:Event):void
    {
        loaderBitmap.x = 0;
        loaderBitmap.y = 0;
        magicNumber = loaderBitmap.width;
    }
    function fileLoaded(e:Event):void
    {
        loaderMovie.x = 270;
        loaderMovie.y = 71;
        loaderMovie.width = 174;
        loaderMovie.height = 233;
    }
 
    function fileLoadedMaska(e:Event):void
    {
        loaderMaska.x = 265;
        loaderMaska.y = 0;
        loaderMaska.height = 350;
    }
 
    stage.addEventListener(Event.ENTER_FRAME,moveObjects);
 
    function moveObjects(e:Event):void
    {
        speed=(1-mouseX*2/stage.stageWidth)*maxSpeed;
        mc.x +=  speed;
        speed < 0 && mc.x <  -  magicNumber ? mc.x +=  magicNumber:null;
        speed > 0 && mc.x > 0 ? mc.x -=  magicNumber:null;
 
    }
}
пожалуйста помогите.

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

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

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


 


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


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