月別アーカイブ: 2009年5月

actionscriptでハマって なんか抜けているけど気づけない

これは通る

classA
public function classA(){
var xxxx:classB = new classB(this);
xxxx.zzzz();
}
classB
var myContainer:Sprite;
var w:uint;
var h:uint;
public function classB(container:Sprite){
w = container.stage.stageWidth;
h = container.stage.stageHeight;
myContainer = container;
}
classC
function zzzz():void{
var zzzz:Sprite = new Sprte();
myContainer.addChild(zzzz);
(以下略)
}

super()だと 通らないのか あれ?よくわからん
なんかダメ
(やっていることは
AS入門ノート1のP204のところをフレームに書かずにおきたいだけなんですが)

package{
import flash.display.Sprite;
public class Main extends Sprite{
public function Main(){
var dg:DotGrid = new DotGrid(this);
dg.arrange(20,10)
}
}
}
package {
import flash.display.Sprite;
public class DotGrid extends MakeSprite {
var w:uint;
var h:uint;
public function DotGrid(container:Sprite) {
super(container);
w = container.stage.stageWidth;
h = container.stage.stageHeight;
}
public function arrange(cntx:uint, cnty:uint):void {
var dw:uint = w /cntx;
var dh:uint = h / cnty;
var i:uint, j:uint;
for (i = 0; i < cnty; i++) {
var cy:uint = dh * (i+ 0.5);
for (j = 0; j < cntx; j++){
var cx:uint = dh*(i+0.5);
var cr:uint = Math.ceil(Math.random()*Math.min(dw, dh) / 2);
var color:uint = Math.random()*0xFFFFFF;
var sp:Sprite = makeCircleSp(cx, cy, cr, color);
}
}
}
}
}
package{
import flash.display.Sprite;
public class MakeSprite extends Sprite{
var myContainer:Sprite;
public function Main(container:Sprite){
myContainer = container;
}
public function makeCircleSp(cx:int, cy:int, cr:int, color:uint):Sprite{
var circleSp:Sprite = new Sprite();
circleSp.graphics.beginFill(color);
circleSp.graphics.drawCircle(cx, cy, cr);
myContainer.addChild(circleSp);
return circleSp;
}
}
}

まんま貼ってみたもののサンプルを
そのままだして良かったのかなとも思う

後で自分で「こんなのも分かってないのかよ」とつぶやきたい。