Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 1,2 > сделать дубликат клипа


Автор: Enya 29.9.2007, 21:43
Вот хочу что бы спутники крутились по разным орбитам.
Делаю отдельный слой, другой клипик, другое имя, и вот первый спутник двигается, а второй продублированный мануально стоит как вкопанный.

Функция duplicatemovieclip дублирует клипик - а действие нет. smile 

Автор: AlDev 30.9.2007, 05:20
Ессно. Дублирует графику. И то кривенько - если есть child-ы - то не сдублирует.

Как решать:
Создаем клип в библиотеке.
Прописываем в нем код
И добавляем на сцену используя attachMovie

За подробностями - F1

Автор: Enya 30.9.2007, 13:35
м-м-м пока не получается.
в библиотеке два мувика - у одного есть скрипт (его то и надо прикрепить).
вот код самой сцены
Код

var x:Number;
var y:Number;
var xc:Number = 250;//центр круга
var yc:Number = 200;
//var r:Number = 150;//радиус круга
var rx:Number = 80;
var ry:Number = 120;
var angle:Number = 120;//угол поворота
onEnterFrame = function(){
    //angle in radians!
    x = Math.cos(angle)*rx;
    y = Math.sin(angle)*ry;
    ball_mc._x = xc+x;
    ball_mc._y = yc-y;
    angle += Math.PI/180;
}
this.attachMovie("circle2","circle2",this.getNextHighestDepth());
вот попытка присоединения
Код

this.attachMovie("circle2","circle2",this.getNextHighestDepth());
но всё равно не присоединяются.вот выдаёт ошибку
Цитата
**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: Statement must appear within on/onClipEvent handler
     var x:Number;

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 2: Statement must appear within on/onClipEvent handler
     var y:Number;

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 3: Statement must appear within on/onClipEvent handler
     var xc:Number = 250;//центр круга

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 4: Statement must appear within on/onClipEvent handler
     var yc:Number = 200;

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 6: Statement must appear within on/onClipEvent handler
     var rx:Number = 80;

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 7: Statement must appear within on/onClipEvent handler
     var ry:Number = 120;

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 8: Statement must appear within on/onClipEvent handler
     var angle:Number = 120;//угол поворота

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 9: Statement must appear within on/onClipEvent handler
     onEnterFrame = function(){

Total ActionScript Errors: 8   Reported Errors: 8



мне нужно запустить спутники. разница то вактически в радиусе и в угле - меняются эти параметры. таких спутников желательно шесть. т.е на каждую ось по 2 спутника.

Автор: fastrat 1.10.2007, 10:42
enya ti kod na moviclip postavila to postav na frame 

Автор: Enya 1.10.2007, 23:09
Код

this.attachMovie("sate", "sate1", this.getNextHighestDepth());
 this.attachMovie("sate", "sate2", this.getNextHighestDepth());
  
sate1.x = 0;
sate1.y = 0;
sate1.xc = 320;//центр круга
sate1.yc = 240;
sate1.rx = 80;
sate1.ry = 120;
sate1.angle = 120;//угол поворота

sate2.x = 0;
sate2.y = 0;
sate2.xc = 320;//центр круга
sate2.yc = 240;
sate2.rx = 120;
sate2.ry = 80;
sate2.angle = 120;//угол поворота

onEnterFrame = function(){
    
    sate1.x = Math.cos(sate1.angle)*sate1.rx;
    sate2y = Math.sin(sate1.angle)*sate1.ry;
    sate1._x = sate1.xc+sate1.x;
    sate1._y = sate1.yc-sate1.y;
    sate1.angle += Math.PI/180;
    
    sate2.x = Math.cos(sate2.angle)*sate2.rx;
    sate2y = Math.sin(sate2.angle)*sate2.ry;
    sate1._x = sate2.xc+sate2.x;
    sate2._y = sate2.yc-sate2.y;
    sate2.angle += Math.PI/180;
}



не вышло....

Добавлено через 8 минут и 41 секунду
и вот так 
Код

this.attachMovie("sate", "sate1", this.getNextHighestDepth());
 this.attachMovie("sate", "sate2", this.getNextHighestDepth());
  
var x:Number;
var y:Number;
var xc:Number = 320;//центр круга
var yc:Number = 240;
//var r:Number = 150;//радиус круга
var rx:Number = 80;
var ry:Number = 120;
var angle:Number = 120;//угол поворота

onEnterFrame = function(){
    
    x = Math.cos(angle)*rx;
    y = Math.sin(angle)*ry;
    sate1._x = xc+x;
    sate1._y = yc-y;
    angle += Math.PI/180;
    
    x = Math.cos(angle)*rx;
    y = Math.sin(angle)*ry;
    sate2._x = xc+x;
    sate2._y = yc-y;
    angle += Math.PI/180;
}

тоже не вышло

Автор: Maksys 21.10.2007, 22:35
Во -первых из библиотеки не сделала экспорт в АС
во вторых будь внимательней во время программирования (Программировать-это не сексом заниматься одна пропущенная точка может убить компьютер и начать атомную войну, в отличии от секса, как не крути тока дети и получаются... "собст.наблюд.")

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)