toadstool
%Europe/Berlin %679 %2008, 16:18
Ik ben tegen iets aangelopen in AS3.0 dat zich niet voordoet in AS2.0
Om het te illustreren de volgende code
import flash.display.*;
var a:Sprite = new Sprite();
addChild(a);
var cy:uint = 0;
for(var i=0; i<5; i++){
var b = createBlock();
a.addChild(b);
b.y = cy;
cy += b.height + 5;
}
trace("a.height: " + a.height);
function createBlock():Shape {
var block:Shape = new Shape();
block.graphics.beginFill(0xFF0000, 1);
block.graphics.drawRect(0, 0, 10, 10);
block.graphics.endFill();
return block;
}
Dit tracet 'a.height: 70'
Echter deze code, waarin ik de initiele waarde van cy heb veranderd en dus de blokjes 40 pixels lager in a worden geplaatst
import flash.display.*;
var a:Sprite = new Sprite();
addChild(a);
var cy:uint = 40;
for(var i=0; i<5; i++){
var b = createBlock();
a.addChild(b);
b.y = cy;
cy += b.height + 5;
}
trace("a.height: " + a.height);
function createBlock():Shape {
var block:Shape = new Shape();
block.graphics.beginFill(0xFF0000, 1);
block.graphics.drawRect(0, 0, 10, 10);
block.graphics.endFill();
return block;
}
tracet ook 'a.height: 70'
Het lijkt er dus op dat hij de hoogte niet meer vanuit het registratiepunt pakt, maar de effectieve hoogte van child.y tot child.y binnen een parent waarvan je de height opvraagt?
Iemand die dit kan bevestigen en waarom dit zo is? Want erg handig vind ik dat niet..
Om het te illustreren de volgende code
import flash.display.*;
var a:Sprite = new Sprite();
addChild(a);
var cy:uint = 0;
for(var i=0; i<5; i++){
var b = createBlock();
a.addChild(b);
b.y = cy;
cy += b.height + 5;
}
trace("a.height: " + a.height);
function createBlock():Shape {
var block:Shape = new Shape();
block.graphics.beginFill(0xFF0000, 1);
block.graphics.drawRect(0, 0, 10, 10);
block.graphics.endFill();
return block;
}
Dit tracet 'a.height: 70'
Echter deze code, waarin ik de initiele waarde van cy heb veranderd en dus de blokjes 40 pixels lager in a worden geplaatst
import flash.display.*;
var a:Sprite = new Sprite();
addChild(a);
var cy:uint = 40;
for(var i=0; i<5; i++){
var b = createBlock();
a.addChild(b);
b.y = cy;
cy += b.height + 5;
}
trace("a.height: " + a.height);
function createBlock():Shape {
var block:Shape = new Shape();
block.graphics.beginFill(0xFF0000, 1);
block.graphics.drawRect(0, 0, 10, 10);
block.graphics.endFill();
return block;
}
tracet ook 'a.height: 70'
Het lijkt er dus op dat hij de hoogte niet meer vanuit het registratiepunt pakt, maar de effectieve hoogte van child.y tot child.y binnen een parent waarvan je de height opvraagt?
Iemand die dit kan bevestigen en waarom dit zo is? Want erg handig vind ik dat niet..