80 lines
2.4 KiB
ActionScript
80 lines
2.4 KiB
ActionScript
package {
|
|
|
|
import flash.display.Sprite;
|
|
import flash.events.Event;
|
|
import flash.text.TextField;
|
|
import flash.text.TextFieldAutoSize;
|
|
import flash.text.TextFormat;
|
|
|
|
[SWF (width = 550, height = 550)]
|
|
public class MultiplicationTable extends Sprite {
|
|
|
|
public function MultiplicationTable() {
|
|
if ( stage ) _init();
|
|
else addEventListener(Event.ADDED_TO_STAGE, _init);
|
|
}
|
|
|
|
private function _init(e:Event = null):void {
|
|
|
|
removeEventListener(Event.ADDED_TO_STAGE, _init);
|
|
|
|
var format:TextFormat = new TextFormat();
|
|
format.size = 15;
|
|
var blockSize:uint = 40;
|
|
var max:uint = 12;
|
|
|
|
var i:uint, j:uint;
|
|
var tf:TextField;
|
|
|
|
for ( i = 1; i <= max; i++ ) {
|
|
tf = new TextField();
|
|
tf.defaultTextFormat = format;
|
|
tf.x = blockSize * i;
|
|
tf.y = 0;
|
|
tf.width = tf.height = blockSize;
|
|
tf.autoSize = TextFieldAutoSize.CENTER;
|
|
tf.text = String(i);
|
|
addChild(tf);
|
|
|
|
tf = new TextField();
|
|
tf.defaultTextFormat = format;
|
|
tf.x = 0;
|
|
tf.y = blockSize * i;
|
|
tf.width = tf.height = blockSize;
|
|
tf.autoSize = TextFieldAutoSize.CENTER;
|
|
tf.text = String(i);
|
|
addChild(tf);
|
|
}
|
|
|
|
var yOffset:Number = tf.textHeight / 2;
|
|
y += yOffset;
|
|
|
|
graphics.lineStyle(1, 0x000000);
|
|
graphics.moveTo(blockSize, -yOffset);
|
|
graphics.lineTo(blockSize, (blockSize * (max + 1)) - yOffset);
|
|
graphics.moveTo(0, blockSize - yOffset);
|
|
graphics.lineTo(blockSize * (max + 1), blockSize - yOffset);
|
|
|
|
|
|
for ( i = 1; i <= max; i++ ) {
|
|
for ( j = 1; j <= max; j++ ) {
|
|
if ( j > i )
|
|
continue;
|
|
|
|
tf = new TextField();
|
|
tf.defaultTextFormat = format;
|
|
tf.x = blockSize * i;
|
|
tf.y = blockSize * j;
|
|
tf.width = tf.height = blockSize;
|
|
tf.autoSize = TextFieldAutoSize.CENTER;
|
|
tf.text = String(i * j);
|
|
addChild(tf);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|