我添加了一个滚动窗格,然后我添加了一个在精灵中导出的自定义影片剪辑,但是当我执行所有这些操作后,点击更新命令,ScrollPane永远不会更新,也不会显示任何滚动条。
代码如下:
function doneLoad(e:Event):void {
trace("doneload");
var bm:Bitmap = e.target.content as Bitmap;
bm.smoothing = true;
bm.x = 20;
bm.y = 20;
bm.width = 80;
bm.height = 80;
shape1.addChild(getTextField("Helvetica",12,"0x31b1e1","left","Name:",120,10));
shape1.addChild(getTextField("Helvetica",12,"0xcccccc","left",user.name,120,28));
shape1.addChild(bm);
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,doneLoad);
loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,loadingError);
sql.removeEventListener(SQLEvent.POST_COMPLETE,dataPostResponse);
scroll = new ScrollPane();
scroll.width = 320;
scroll.height = 300;
scroll.x = 0;
scroll.y = 140;
scroll.verticalScrollPolicy = ScrollPolicy.AUTO;
//scroll.verticalScrollPolicy = ScrollPolicy.ON;
shape1.addChild(scroll);
//var content:DisplayObject = new DisplayObject();
content = new Sprite();
var dd:mc_countryDP = new mc_countryDP();
content.addChild(dd);
dd.x = 0;
dd.y = 280;
//scroll.addChild(content);
scroll.source = content;
loader = null;
mc_user.visible = true;
//content.addEventListener(Event.COMPLETE, completeHandler);
scroll.update();
}
答案 0 :(得分:0)
正如其他人所说,您无需更新滚动窗格。如果更改了附加到其上的源的内容,则只需更新滚动窗格。首次附加源时,它会自动将滚动窗格更新为新大小。
至于定位,当你向其他东西添加东西时,位置(x,y)将相对于那个。换句话说,如果我有精灵A,它位于舞台上(100,100),我将精灵B附加到它,然后我将B的位置设置为(10,10),然后精灵B将显示为虽然它位于舞台的位置(110,110)。这是因为它是对精灵A的位置(10,10),它恰好已经从阶段的原点偏移了(100,100)。因此,当您将对象附加到"内容"然后将其y设置为280,您将其设置为280以引用内容的位置,在这种情况下,它位于滚动窗格内。
最后,您应该考虑使用继承的函数setSize和move,而不是手动设置x / y和width / height。我怀疑这样做会产生任何负面影响,但我认为比抱歉更安全。
希望能够清除它,尽管这可能太过于罗嗦了。