Perl SWF:: Builder se desvanece en la imagen
actionscript flash (1)
Creo que falta la llamada para finalizar el script una vez que esté completo. ¿Qué pasa si haces lo siguiente?
my $onEnterFrameScript = "
this.frameIndex += 1;
if ((this._alpha < 100) && (this.frameIndex < this.fadeOutFrameIndex)) {
this._alpha += this.apf;
} else if (this.frameIndex > this.fadeOutFrameIndex) {
this._alpha -= this.apf;
if (this._alpha <= 0){
this._visible=false;
delete this.onEnterFrame;
}
}
";
Observe la llamada "delete this.onEnterFrame"
Estoy trabajando en un script para crear archivos swf con imágenes fundidas de entrada / salida.
Este es mi código hasta ahora:
my %CONFIG = (
''scriptURI'' => "data.js",
''imageFolder'' => "images/",
''outputFileName'' => ''testImg.swf'',
''delay'' => 3, # delay between images
''fps'' => 10,
''fadeFrame'' => 10 # 1 second fade in/out
);
sub addImgToMovie {
my $img = shift;
my $frameNo = shift;
my $movie = shift;
my $movieClip = $movie -> new_mc();
my $jpeg = $movieClip -> new_jpeg($img);
$jpeg -> place(Frame => 1);
my $mc_i = $movieClip -> place(Frame => $frameNo);
my $onloadScript = sprintf("
this._alpha = %d;
this.apf = %f;
this.frameIndex = %d;
this.fadeOutFrameIndex = %d;
", 0, 100 / $CONFIG{''fadeFrame''}, 1, $CONFIG{''delay''} * $CONFIG{''fps''} - $CONFIG{''fadeFrame''});
$mc_i -> onClipEvent(''Load'') -> compile($onloadScript);
my $onEnterFrameScript = "
this.frameIndex += 1;
if ((this._alpha < 100) && (this.frameIndex < this.fadeOutFrameIndex)) {
this._alpha += this.apf;
} else if (this.frameIndex > this.fadeOutFrameIndex) {
this._alpha -= this.apf;
}
";
$mc_i -> onClipEvent(''EnterFrame'') -> compile($onEnterFrameScript);
return $movie;
}
my $movie = SWF::Builder -> new(
FrameRate => $CONFIG{''fps''},
FrameSize => [0, 0, 180, 163],
BackgroundColor => ''ffffff''
);
my $img = $CONFIG{''imageFolder''} . "adimage1.jpg";
$movie = addImgToMovie($img, 1, $movie);
$movie -> save($CONFIG{''outputFileName''});
La secuencia de comandos genera un archivo SWF, pero solo aparece y desaparece una vez, luego tengo una imagen en blanco.
De alguna manera depuré el archivo y descubrí que frameIndex sigue aumentando una y otra vez, así que sospecho que onEnterFrame sigue reproduciéndose, por lo tanto, el clip de película nunca se detiene.
¿Alguien podría ayudarme a resolver este problema? Me gustaría que el clip de película se detenga después de que la imagen se desvanezca por completo.