Hola, soy totalmente nuevo en Actrioscript.
Encontré código de ejemplos en la web y lo probé en dos películas por separado, hasta ahí todo ok.
El tema está en que en una tercera película coloqué en una acción del primer fotorgrama lo que está en una de las películas y en la acción del segundo fotograma puse la segunda película. Cuando presiono CTRL + F3 veo bien la primera acción y la segunda no aparece.
El código de la acción correspondiente del primer fotograma es:
Código:
MovieClip.prototype.drawCircle = function (radius, x, y) {
var angleDelta = Math.PI / 4;
var ctrlDist = radius/Math.cos(angleDelta/2);
var angle = 0;
var rx, ry, ax, ay;
this.moveTo(x + radius, y);
for (var i = 0; i < 8; i++) {
angle += angleDelta;
rx = x + Math.cos(angle-(angleDelta/2))*(ctrlDist);
ry = y + Math.sin(angle-(angleDelta/2))*(ctrlDist);
ax = x + Math.cos(angle)*radius;
ay = y + Math.sin(angle)*radius;
this.curveTo(rx, ry, ax, ay);
}
}
//MovieClip.prototype.enmascarar = function(radio){
var radio:Number = 17;
this._alpha = 0;
var prof:Number = _root.getNextHighestDepth(); // Profundidad de los clips a usar
var ancho:Number = this._width; // Ancho del clip a enmascarar
var alto:Number = this._height; // Alto del clip a enmascarar
var cx:Number = Math.floor(ancho/(radio*2))+2; // Número de círculos por fila
var cy:Number = Math.floor(alto/radio)+1; // Número de círculos por columna
var cant:Number = cx * cy+cx; // Cantidad total de círculos
var destino:MovieClip = this; // Identificador del clip
_root.createEmptyMovieClip("maskareitor",prof); // Creamos el clip de la máscara
prof++; // Profundidad más
var x:Number = 0 // Columna q le toca a cada círculo
var y:Number=1 // Fila que le toca a cada círculo
var d:MovieClip; // Identificador del círculo
var control:Number = 0;
diagonal = 0, posDiag = 1;
for(i=1;i<(cant+1);i++){ // Bucle de creación de los círculos
_root.maskareitor.createEmptyMovieClip("circulo" + i,prof); // Creamos el clip vacío
d = _root.maskareitor["circulo" + i]; // Identificador del círculo actual
d._x = x; // Calculamos la posición X
d._y = radio*(y-1); // Calculamos la posición Y
d.i = i; // Asignamos el número
// Fórmulas para controlar el orden de aparición
d.orden = diagonal+posDiag;
posDiag++;
if(posDiag%(cx) == 0){
posDiag = 1;
diagonal +=0.5;
}
// d.orden = random(cant); <-- para hacerlos aleatorios
//--------------------------------------------------------
// POSICIONAMIENTO----------------------------------------
if(y%2!=0){
x+=(radio*2);
if(i%(cx)==0 && i!=0){
x=-radio;
y++;
}
}else{
x+=(radio*2);
if(i%(cx)==0){
x = 0;
y++;
}
}
//---------------------------------------------------------
//---------------------------------------------------------
d.beginFill(0xFF0000,100); // Dibujamos el círculo
d.drawCircle(radio,0,0);
d.endFill();
prof++;
d._xscale = 0; // Lo escalamos a 0
d._yscale = 0;
d.tiempo = 0; // Temporizador
d.onEnterFrame = function(){
if(this.tiempo == this.orden){ // Si le toca agrandarse
if(this._xscale <100){
this._xscale += (101-this._xscale)/7;
this._yscale = this._xscale;
}else{
delete this.onEnterFrame;
control +=100;
if(control == (cant*100)){
_root.maskareitor.removeMovieClip(); // Borra la máscara madre
destino.setMask(null); // Quita máscara
//trace("fin");
}
}
}else{
this.tiempo +=0.5;
}
}
}
this.setMask(_root.maskareitor);
this._alpha = 100;
//}
//c1.enmascarar(17);
//Poner en el fotograma donde queramos hacer la pausa
stop();
x = 3; //valor en segundos de la pausa
//En este caso, cada 5000 milisegundos
//llamamos a la función pausa
miIntervalo = setInterval(pausa, x*1000);
function pausa(){
//borramos miIntervalo
clearInterval(miIntervalo);
//avanzamos al siguiente frame
nextFrame();
}
y el del segundo es:
Código:
//proto q movera las letras
MovieClip.prototype.carusel = function() {
this.onEnterFrame = function() {
if (_root._xmouse>centrox) {
direccion = -1;
} else {
direccion = 1;
}
velocidad = Math.abs((_root._xmouse-centrox)/(275/velocidadmaxima));
this.angulo += (velocidad*direccion);
this._x = centrox+Math.cos((Math.PI/180)*this.angulo)*2*radio;
this._y = centroy+Math.sin((Math.PI/180)*this.angulo*7)*radio/-10;
this.z = Math.sin((Math.PI/180)*this.angulo)*radio;
this._alpha = this._yscale=this._xscale=(100*distanciafocal)/(distanciafocal+this.z);
};
};
//para ir sumando la profundidad
function maxprofundidad() {
return ++profundidad;
}
//inicio variables
centrox = 500/2;
centroy = 500/2;
radio = 100;
velocidadmaxima = 3;
distanciafocal = 180;
listaLetras = new Array();
//creando los titulos
//titulos.text = ".: Escribe cualquier tonteria en el campo de texto :. ";
titulos =" Esto es una prueba ";
//creando los clips q contendran las letras
function creaLetras() {
var letras = new Array();
for (var i = 0; i<=titulos.length; i++) {
letras[i] = titulos.substr(i, 1);
var letra = this.attachMovie("letrita", "letrita"+i, i+1);
letra.angulo = Math.round((360/titulos.length)*i);
letra.contenido.text = letras[i];
letra.carusel();
listaLetras.push(letra);
}
}
function borraLetras() {
trace(listaLetras.length);
for (var i = 0; i<listaLetras.length; i++) listaLetras[i].removeMovieClip();
listaLetras = [];
profundidad = 1;
}
creaLetras();
stop();
Desde yá agradezco las respuestas.
Saludos