我正在尝试将图像添加到精灵然后将其添加到网格中。图像的原始大小为276x202。然而,当它被添加到网格中时,它的大小会增加。
结果是
public class main extends MovieClip
{
public function main()
{
var view:IsoView = new IsoView();
view.setSize((stage.stageWidth), stage.stageHeight);
view.clipContent = true;
addChild(view);
var gridHolder:IsoScene = new IsoScene();
view.addScene(gridHolder);
var scene:IsoScene = new IsoScene();
view.addScene(scene);
graphics.beginFill(0x000000, 1);
graphics.drawRect(0, 0, 800, 600);graphics.endFill();
var grid:IsoGrid = new IsoGrid();
grid.cellSize = 40;
grid.setGridSize(20, 20, 0);
gridHolder.addChild(grid);
gridHolder.render();
//var box:IsoBox = new IsoBox();
//box.setSize(40, 40, 40);
//box.moveTo(80, 80, 0);
//scene.addChild(box);
var player:IsoSprite;
var myLoader:Loader;
myLoader=new Loader();
myLoader.load(new URLRequest('imgs/DesertTankNE.png'));
//myLoader.width = 5; //Makes image disappear no matter what value is set.
//myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, OnComplete); //Doesn't change anything if we say on completion of loading image add it to the sprite.
player = new IsoSprite();
player.sprites = [myLoader];
//player.setSize(1,1,0); //Doesn't seem to affect anything no matter what size specified.
//player.width = 2; //Same as above
scene.addChild(player);
scene.render();
}
}
我在加载图像时尝试设置图像的宽度和高度,并尝试设置精灵的大小。前者使图像不会出现,无论设置什么值,后者似乎不会影响任何值。
答案 0 :(得分:0)
您的as3isolib
代码完全没有问题,并且代码没有以任何方式调整图片大小。将坦克图像与网格单元的大小(应该是20像素宽,20像素高)进行比较,您应该看到它们的相对大小正常。
唯一的问题是整个Flash阶段正在调整大小。您是否正在浏览器上测试您的Flash电影?确保您没有将Flash影片的宽度和高度设置为HTML中容器的100%。如果flash影片在div中并且flash被告知宽度和高度为100%,它将延伸到div的任何大小。
看到你的代码我认为你希望你的舞台大小为800x600;使用元标记 SWF 将您的Flash影片设置为这些尺寸,例如:
[SWF(width="800", height="600", frameRate="30", backgroundColor="#FFFFFF")]
如果您使用的是Flash Builder,则可能需要多次清理项目(Project - > Clean)以清除以前的编译器设置。测试你的SWF电影在broswer之外(双击SWF文件在本地flash播放器上打开它)并确保它具有正确的尺寸。你现在应该看到坦克和网格单元的大小合适。
如果要在浏览器中测试它,请不要使用Flash Builder(或Flash Pro)生成的HTML包装器。使用swfobject创建自己的html并设置正确的宽度和高度,例如:
<script type="text/javascript">
swfobject.embedSWF("myIsoTank.swf", "flash_container_div", "800", "600", "10", "expressInstall.swf");
</script>
这应该摆脱你的问题。