Soy nuevo en AS3 y estoy haciendo una web que usa la precarga del tutorial. De momento tengo dos frames en la película. La precarga funciona bien, el problema viene cuando quiero acceder a los objetos del segundo fotograma. Parece que cuando ejecuta el código aun no están cargados (Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo). Aquí teneis el código que llevo de momento:
package {
//imports
import flash.display.*;
import flash.net.*;
import flash.text.*;
import flash.xml.*;
import flash.events.*;
import flash.geom.ColorTransform;
import flash.filters.*;
import caurina.transitions.Tweener;
import flash.events.*
public class main extends MovieClip {
/* main *********************************************************************/
public function main() {
stop();
configFile();
}
/* configFile ***************************************************************/
private function configFile() :void {
stage.quality = StageQuality.BEST;
stage.scaleMode = "noScale";
stage.showDefaultContextMenu = false;
preload();
}
/* startAnimation ***********************************************************/
private function startAnimation() :void {
//menu.visible = false;
}
/* messenger ****************************************************************/
private function messenger(msg: String) :void {
var request:URLRequest = new URLRequest("javascript:alert('"+ msg + "');");
navigateToURL(request, "_self");
}
/* window *******************************************************************/
private function window (url:String, wwidth: Number, wheight: Number) {
var request:URLRequest = new URLRequest("javascript:popUp('" + url + "', " + wwidth + ", " + wheight + ");");
navigateToURL(request, "_self");
}
/* preload ******************************************************************/
private function preload () :void {
var ldrFrame:Shape = new Shape();
var ldrBar:Shape = new Shape();
ldrFrame.graphics.lineStyle(1, 0x000000);
ldrFrame.graphics.drawRoundRect(0, 20, 100, 5, 0);
ldrBar.graphics.beginFill(0x9A3D1E);
ldrBar.graphics.drawRect(0, 20, 100, 5);
ldrBar.graphics.endFill();
ldrText.selectable = false;
ldrText.autoSize = TextFieldAutoSize.CENTER;
ldrText.y = stage.stageHeight / 2 - ldrText.height / 2;
ldrFrame.y = ldrBar.y = ldrText.y + 2;
addChild(ldrFrame);
addChild(ldrBar);
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadProgress);
this.loaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
/*************************************************/
function onLoadProgress (event:ProgressEvent) :void {
var cargado:int = event.bytesLoaded / 1024;
var total:int = event.bytesTotal / 1024;
var porcentaje:int = cargado / total * 100;
ldrFrame.x = ldrBar.x = stage.stageWidth / 2 - ldrFrame.width / 2;
ldrText.text = "Cargados " + String(cargado) + "kb de " + String(total) + "kb";
ldrBar.width = porcentaje * ldrFrame.width / 100;
}
/*************************************************/
function onLoadComplete (event:Event) :void {
removeChild(ldrText);
removeChild(ldrFrame);
removeChild(ldrBar);
nextFrame();
startAnimation();
}
}
}//end class
}//end package
Espero que me podais ayudar. Gracias de antebrazo
