Я только что написал класс Background для нового проекта. Фон в основном будет представлять собой 2 скругленных прямоугольника с простым штрихом и цветом заливки, накладываемым друг на друга.
В любом случае, сейчас я просто пытаюсь нарисовать 1 скругленный прямоугольник, но по какой-то причине я нигде не вижу его на сцене :( Никаких ошибок и мои трассировки не отображаются правильно. Это пример Я следил. Я также включил код из моего класса Document, который рисует фон.
Background.as
package src.display{
import flash.display.DisplayObject;
import flash.display.Graphics;
import flash.display.JointStyle;
import flash.display.LineScaleMode;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
public class Background extends Sprite {
private const position:Number = 0;
private var child:Shape = new Shape();
private var bgColor:uint = 0xE8E7E7;
private var borderColor:uint = 0xCCCCCC;
private var borderSize:uint = 1;
private var cornerRadius:uint = 3;
private var sizeW:uint;
private var sizeH:uint;
public function Background():void {
if (stage) {
init();
} else {
addEventListener(Event.ADDED_TO_STAGE, init);
}
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
}
public function draw(w, h):void {
sizeW=w; //w & h are passed from Document class
sizeH=h;
child.graphics.beginFill(bgColor);
child.graphics.lineStyle(borderSize, borderColor);
child.graphics.drawRoundRect(position, position, sizeW-1, sizeH-1, cornerRadius);
child.graphics.endFill();
addChild(child);
trace("child.x = "+child.x);
trace("child.x = "+child.y);
trace("child.w = "+child.width);
trace("child.h = "+child.height);
}
}
}
Все мои следы отображаются правильно:
child.x = 0
child.x = 0
child.w = 520
child.h = 510
Вот код из моего класса Document, который устанавливает класс Background:
private function drawBackground():void
{
trace("\r"+"drawBackground called");
bg = new Background();
bg.draw(globalWidth, globalHeight);
trace("drawBackground end");
}