Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   копирование загружаемого объекта (http://www.flasher.ru/forum/showthread.php?t=144048)

ЛяЛя 01.09.2010 09:43

копирование загружаемого объекта
 
помогите что я делаю не так.
Код AS3:

var urlRequestBitmap:URLRequest;
loaderBitmap = new Loader();
urlRequestBitmap = new URLRequest("panorama.swf");
loaderBitmap.load(urlRequestBitmap);
loaderBitmap.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoadedB);
function fileLoadedB(e:Event):void {
        loaderBitmap.x=0;
        loaderBitmap.y=0;
        magicNumber=loaderBitmap.width;
}
var holder1:MovieClip=new MovieClip();
holder1.x=magicNumber;
holder1.y=100;
holder1.addChild(loaderBitmap);
holder.addChild(loaderBitmap);
holder.addChild(holder1);

желаемый результат: копирование двух клипов в один и друг за другом.
но у меня видится только один. Причину не могу понять.

-De- 01.09.2010 11:19

Вы не копируете. После второго ...addChild(loaderBitmap); loaderBitmap не копируется, а перемещается в другой контейнер. Создать копию .swf это что-то типа такого (в fileLoadedB).
Код AS3:

var newPanorama:DisplayObject = new ((loaderBitmap.content as Object).constructor as Class)();

Ну и потом добавлять его в какой хошь контейнер.
Ну или сделать 2 лоадера и закинуть во второй swf из 1-го так (ясен пень тоже в в fileLoadedB):
Код AS3:

loaderBitmap2.loadBytes(loaderBitmap.content);


ЛяЛя 01.09.2010 12:09

спасибо поняла. щас попробую

Добавлено через 1 час 26 минут
почему то пишет ошибку
1067: Implicit coercion of a value of type flash.display:DisplayObject to an unrelated type flash.utils:ByteArray.
Код AS3:

function fileLoadedB(e:Event):void {
        //Добавляем  на сцену
        loaderBitmap.x=0;
        loaderBitmap.y=0;
        magicNumber=loaderBitmap.width;
        loaderBitmap2.loadBytes(loaderBitmap.content);
        loaderBitmap2.x=magicNumber;
        loaderBitmap2.y=0;
}


alatar 01.09.2010 13:47

Код AS3:

loaderBitmap2.loadBytes(loaderBitmap.contentLoaderInfo.bytes);


ЛяЛя 01.09.2010 13:50

спасибо :rolleyes:

попробовала , увы теперь ошибка ещё хуже 1119: Access of possibly undefined property bytes through a reference with static type flash.display:LoaderInfo.

-De- 01.09.2010 15:02

надо бы обновить компилятор...
Код AS3:

loaderBitmap2.loadBytes(loaderBitmap.contentLoaderInfo.bytes);

- правильно.

ЛяЛя 01.09.2010 15:13

будьте любезны подскажите как его обновить? в интернете поискала не нашла. спасибо заранее.

-De- 01.09.2010 15:19

Если Flash CS3, то поставьте Flash CS4 или CS5. Адобовские апдейты ещё поставить должно помочь по идее. Если не он, то скажите, в чем, собственно, флэшка изготавливается.

ЛяЛя 01.09.2010 15:32

уважаемые гуру. флешка выполняется Adobe Flash CS3 Professional, version 9.0
привожу полный код. Задача такая:хочу загрузить сначала фон на фон видео на видео снова картинку. но полученный movieclip надо дублировать (дублировать фон не могу, так как будет много видео и кнопочек), все это делается для того чтобы получить панораму с видео.

P.S.:Но для начала решила попробовать хотя бы продублировать фон.
вот собственно код.
Код AS3:

import flash.events.Event;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.display.*;
import flash.utils.ByteArray;
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
 
var magicNumber:Number;//Магическое число!:) Размер полного круга панорамы
var maxSpeed=10;//Максимальная скорость перемещения панорамы
var speed:Number;//Текущая скорость и направление, заодно.
 
var holder:MovieClip=new MovieClip(); //клип в который все складывается
holder.x=0;
holder.y=0;
addChild(holder);
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(Event.COMPLETE, fileLoadedB);
 
function fileLoadedB(e:Event):void {
        loaderBitmap.x=0;
        loaderBitmap.y=0;
        magicNumber=loaderBitmap.width;       
        loaderBitmap2.loadBytes(loaderBitmap.contentLoaderInfo.bytes);
        loaderBitmap2.x=magicNumber;
        loaderBitmap2.y=100;
}
 
 
var loaderMovie1:Loader = new Loader();
var urlRequestMovie1:URLRequest = new URLRequest("vid01.swf");
loaderMovie1.load(urlRequestMovie1);
loaderMovie1.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoaded);
 
function fileLoaded(e:Event):void {
        loaderMovie1.x=324;
        loaderMovie1.y=85;
        loaderMovie1.width=209;
        loaderMovie1.height=280;
}
 
var loaderMaska:Loader = new Loader();
var urlRequestMaska:URLRequest = new URLRequest("maska.png");
loaderMaska.load(urlRequestMaska);
loaderMaska.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoadedMaska);
 
function fileLoadedMaska(e:Event):void {
        loaderMaska.x=318;
        loaderMaska.y=0;
        loaderMaska.height=420;
}
 
holder.addChild(loaderBitmap);
 
holder.addChild(loaderMovie1);
holder.addChild(loaderMaska);
mc.addChild(holder);
mc.addChild(loaderBitmap2);
addChild(mc);
 
// функция для панорамы
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;
}


alatar 01.09.2010 15:33

Цитата:

надо бы обновить компилятор...
Это должно работать во всех версиях плеера начиная с девятой.


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

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