Hi again. More problems I’m afraid…
I’m writing a class that utilizes the whole screen resolution and need a movieClip to adjust itself in accordance to that. That “almost work”. The problem is that I cannot call functions when the resize listener kicks (onResize = function()) in, and I don’t understand why…
I want to call the function centreMe() from within the onResize function.
import mx.transitions.Tween;
import mx.transitions.easing.*;
import mx.utils.Delegate;
class centre {
public function centre() {
// create the background movieclip
drawBg();
}
private function drawBg():Void {
// set local variables
var bgDepth:Number = 1;
var colour_fill:String = "0x0000FF";
var alpha_fill:Number = 30;
var strokeThickness:Number = 5;
var colour_stroke:String = "0xFF00FF";
var alpha_stroke:Number = 100;
// create background movieClip
_root.createEmptyMovieClip("bg_mc", bgDepth);
_root.bg_mc.beginFill(colour_fill, alpha_fill);
_root.bg_mc.lineStyle(strokeThickness, colour_stroke, alpha_stroke);
_root.bg_mc.moveTo(0, 0);
_root.bg_mc.lineTo(0, Stage.height);
_root.bg_mc.lineTo(Stage.width, Stage.height);
_root.bg_mc.lineTo(Stage.width, 0);
_root.bg_mc.endFill();
createListener();
}
private function createListener():Void {
// set stage
Stage.align = "TL";
Stage.scaleMode = "noScale";
// resize listener
var resizeListener:Object = new Object();
resizeListener.onResize = function () {
_root.bg_mc._width = Stage.width;
_root.bg_mc._height = Stage.height;
// re-draw background
centreMe(_root.fish_mc);
/* IF I UN-COMMENT THIS, IT WORKS THOUGH
var t_mc:MovieClip = _root.fish_mc;
var time:Number = 2;
var fromTop:Number = 0;
var startX:Number = t_mc._x;
var endX:Number = Math.floor(Stage.width / 2);
var startY:Number = t_mc._y;
var endY:Number = Math.floor(t_mc._height/2);
var xTween:Object = new Tween(t_mc, "_x", Strong.easeOut, startX, endX, time, true);
var yTween:Object = new Tween(t_mc, "_y", Strong.easeOut, startY, endY, time, true);
*/
}
Stage.addListener(resizeListener);
}
public function centreMe(t:MovieClip):Void {
var t_mc:MovieClip = t;
var time:Number = 2;
var fromTop:Number = 0;
var startX:Number = t_mc._x;
var endX:Number = Math.floor(Stage.width / 2);
var startY:Number = t_mc._y;
var endY:Number = Math.floor(t_mc._height/2);
var xTween:Object = new Tween(t_mc, "_x", Strong.easeOut, startX, endX, time, true);
var yTween:Object = new Tween(t_mc, "_y", Strong.easeOut, startY, endY, time, true);
}
}