簡體   English   中英

As3更改對象的寬度/高度,然后將新的尺寸比例設置為1

[英]As3 change object width/height, then set new size scale as 1

我有一個對象操縱函數(現在),該函數操縱數組內部對象的比例,以給出彼此之間的實時大小變化。

我想知道的是,是否有一種方法可以更改對象的寬度/高度(因為它是移動應用程序,因此適合屏幕尺寸),然后重置比例,以便新的寬度/高度的scaleX / scaleY值為1 。

寬度/高度是直接影響DisplayObject比例的屬性。 您不能在不影響比例的情況下調整其大小。

但是,您可以:

  • 將圖像繪制為位圖
  • 如果它是原始的,則重畫它
  • 放入支架

關於每種解決方案的一些知識:

通過創建BitmapData並使用draw()調用來繪制DisplayObject(或任何IBitmapDrawable)。 有利的一面是它將是位圖,從而節省了渲染時間。 缺點是,如果圖像較大,則將占用內存(對於移動設備至關重要),除非您創建了可以讀取動畫的腳本,否則它將沒有交互性/動畫。

如果通過Graphics類的API繪制元素,則可能只需要像resize()方法那樣在窗口調整大小/翻轉方向時調用即可。 只需利用Graphics對象的clear()方法並重繪整個對象即可。

最后,可能是您的最佳選擇。 調整對象大小。 制作一個新的Sprite(我選擇Sprite是因為它是交互式的,您可能需要這樣做),然后將大小調整后的對象添加到該新生成的Sprite中,而Sprite只是添加到了顯示列表中,就像您之前添加了調整大小后的對象一樣。 如果很難理解,請看下面的代碼:

myResizeableObject.width = newWidth;
myResizeableObject.scaleY = newScaleY;

var holderSprite:Sprite = new Sprite();
myResizeableObject.parent.addChild(holderSprite); // if you don't have a specific place to add the myResizeableObject, don't use myResizeableObject.parent - it's ugly
holderSprite.addChild(myResizeableObject);

希望對您有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM