我有一个简单的符号
var button:graphic = new graphic();
button.x=250;
button.y=200;
addChild(button);
我希望这个出现在中间:
var posX:number = stage.width/2
var posY:number = stage.height/2
button.x=posX
button.y=posY
这进入了我的脑海^,但是当我运行它时,它显示了以下错误:
1046: Type was not found or was not a compile-time constant: number. //for pos X
1046: Type was not found or was not a compile-time constant: number. //for pos Y
我发现这是唯一的解决方案,但可悲的是,这行不通,因为我是整个编程领域的新手,所以我可能写错了这些行。
请更正我的解决方案,如果有误,请告诉正确的解决方案
在您的示例中,您遇到Number
数据类型的案例问题。
同样,您应该参考stage.stageWidth
和stage.stageHeight
属性。
var posX:Number = stage.stageWidth / 2;
var posY:Number = stage.stageHeight / 2;
您可能希望补偿符号的宽度和高度,如下所示:
var posX:Number = (stage.stageWidth / 2) - (button.width / 2);
var posY:Number = (stage.stageHeight / 2) - (button.height / 2);
最后,侦听Event.RESIZE
事件以处理舞台大小的更改:
import flash.events.Event;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, resizeHandler);
stage.dispatchEvent(new Event(Event.RESIZE));
function resizeHandler(event:Event):void
{
var posX:Number = (stage.stageWidth / 2) - (button.width / 2);
var posY:Number = (stage.stageHeight / 2) - (button.height / 2);
button.x = posX;
button.y = posY;
}
例如,这是Adobe Flash CS5 FLA源代码,HTML和已编译的SWF。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句