我想允許swf在瀏覽器窗口調整大小時縮放,但我不希望它增加超過100%(所以它只能縮小)。我想將swf縮放到100%,但百分比下降。任何想法如何做到這一點?
這是什麼樣的縮放客戶想要的例子: http://www.voosfurniture.com/
但同樣,它應該在100%停止上升。
我想允許swf在瀏覽器窗口調整大小時縮放,但我不希望它增加超過100%(所以它只能縮小)。我想將swf縮放到100%,但百分比下降。任何想法如何做到這一點?
這是什麼樣的縮放客戶想要的例子: http://www.voosfurniture.com/
但同樣,它應該在100%停止上升。
,你可以這樣做,但你需要把你的內容在一個容器(變量「_container」下面):
package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.geom.Point;
import flash.geom.Rectangle;
public class Test extends Sprite
{
private var _initialeStageBounds : Point = new Point;
private var _container : Sprite = new Sprite;
public function Test()
{
_container.graphics.beginFill(0x556699);
_container.graphics.drawRect(0,0,100,100);
addChild(_container);
_initialeStageBounds.x = stage.stageWidth;
_initialeStageBounds.y = stage.stageHeight;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, onStageResize);
}
private function onStageResize(e:Event) : void
{
var ratio : Number = Math.min(1,
stage.stageWidth/_initialeStageBounds.x,
stage.stageHeight/_initialeStageBounds.y);
_container.x = (stage.stageWidth - _container.width)/2;
_container.y = (stage.stageHeight - _container.height)/2;
_container.scaleX = ratio;
_container.scaleY = ratio;
}
}
}
嗯,你_放棄容器並寫一些令人費解的事情來調整大小並在顯示列表上重新定位項目,但這種解決方案可能更容易。 ;-) – coltraneofmars
你是對的,但通過直接操縱顯示列表,顯示對象移動,你可能會有機會添加副作用。 –
客戶端不想正確調整事物大小,但使用此方法。所以我們必須順其自然。 :-) – vuzum
其實那種比例是非常糟糕的,你應該使用液體設計 – 2011-02-18 18:39:09