2014-11-25 109 views
-1

我在adobe flash cs6中創建了一個iOs APP,一切正常。更改閃光燈的舞臺尺寸,但保持寬高比?

但是我現在遇到的問題是應用程序的內容在像iPhone 5這樣的更大的iPhone上得到了延伸!

我使用下面的代碼在我的AS3代碼中的第一層的第一幀:

import flash.display.Sprite; 
import flash.display.Screen; 
import flash.geom.Rectangle; 
import flash.display.StageAlign; 
import flash.display.StageScaleMode; 
import flash.system.Capabilities; 
import flash.display.MovieClip; 
import flash.display.*; 
import flash.events.*; 
import flash.geom.*; 
stage.scaleMode = StageScaleMode.NO_SCALE; 
stage.scaleMode = StageScaleMode.NO_BORDER; 
stage.align = StageAlign.TOP_LEFT; 
stage.scaleMode = StageScaleMode.EXACT_FIT; 

我使用上述所以整個APP的代碼將適合每一個屏幕,它工作正常,但一切(APP的內容)得到延伸!

有什麼我可以做的,以保持內容的縱橫比,同時適合上述每一個屏幕上的應用程序的應用程序?

在此先感謝

編輯:

我已經去除了stage.scaleMode = StageScaleMode.EXACT_FIT;,當我在iPhone上查看的應用程序,它不會被拉伸,但一切的輕微去這導致隱藏的權利屏幕右側APP的一小部分!

+0

你所要求的是不可能的 – Daniel 2014-11-25 19:25:52

回答

-1

沒有。

有沒有辦法神奇地處理這一點。你必須告訴它如何安排內容。

+0

我怎麼能告訴它保持內容的寬高比? – user3806613 2014-11-25 02:57:48

+0

設置stage.scaleMode沒有累積效果。看看這裏的選項http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/StageScaleMode.html最有可能你正在尋找'SHOW_ALL' – Daniel 2014-11-25 03:00:05

+0

你看,我確實嘗試過SHOW_ALL但是正如它在上面發送的鏈接中所述「邊框可以出現在應用程序的兩側」。我不能在應用程序邊界周圍! – user3806613 2014-11-25 03:02:58

0

儘管丹尼爾是正確的,但需要更詳細的答案。

事實是,這比你想象的要複雜一些。 Flash不知道如何定位你的元素 - 有時你會希望你的按鈕伸展,但不是那麼多。或者保持高寬比,但是其中一些內容會掉下來。

這是怎麼回事?這個領域的最佳實踐是擁有一個固定的階段視口(初始階段大小)。通常這是固定的320x480。然後,你讓你的應用程序擴展它(如果你運行一個更大的屏幕,你的320像素將被非常縮放,並被像素化)。

這裏有棘手的部分 - 取決於設備的分辨率和dpi,你提供了特定的資產。假設你在兩次你的'初始固定視口'上運行你的應用程序。然後,一切似乎都會放大兩倍(640x960是320x480的兩倍)。一切都以像素爲單位。

但是在這裏你提供的圖形也是兩倍大 - 640x960。這意味着如果你在基本舞臺上運行它們,它們將被縮小爲 - 變成320x480。但是如果你在更大的屏幕上運行它們,舞臺會放大(如前所述),並且圖形現在變成它們的實際尺寸

想象一下,每部手機具有相同的顯示尺寸(比方說4英寸)。但每個人都有不同的分辨率 - 320x840,640x960,720x1280等等。所以如果你想讓你的應用看起來好像是一樣,有一個100%寬的按鈕 - 然後爲它提供一個100%分辨率的圖形!因此,您的圖形應該以不同的大小顯示 - 320px,640px等。

當然,你不能匹配所有的設備。所以這裏來了'縱橫比' - 一個數字,表示屏幕的大小。如果您的基準爲320x480,並且您在640x960上運行,則您的縱橫比將爲2.因此,您從文件夾'assetsx2'(或任何您稱之爲的文件夾,只要您有一些系統讀取它)即可獲得資產。如果你在不同的顯示器上運行並且日糧比例爲2.8,那麼將它舍入爲3.這樣圖像會得到一些縮放,但是縮放3到2.8比縮放3到1要好,對嗎?你越縮放,它就會變得模糊。

我對很長的答案感到抱歉,但我試圖解釋它不是很技術性。有很多關於這方面的文章。這兩個資源幫我最當我開始:

http://sebastien-gabriel.com/designers-guide-to-dpi/home - 信息是怎麼回事 http://screensiz.es/phone - 關於不同的設備,它們的大小,分辨率,寬高比,和你的文件夾的命名方式資訊信息(有約定)。

希望有幫助! :)

p.s.忘記補充說,這是所有關於圖形,考慮到你可能會建立一個用戶界面,所以你使用圖形。儘管如此,無論您使用什麼樣的圖形,整個想法都有效 - 您只需要使用固定大小的舞臺,根據它來定位所有內容,然後再考慮縮放因子。因此,對於640像素寬屏幕上的100%寬度的按鈕,而不是將其寬度設置爲620像素,邊距爲10像素的邊距,則需要將其設置爲310像素,每邊保留5像素邊距。

+0

謝謝。但只有這一行代碼適用於我:stage.scaleMode = StageScaleMode.NO_BORDER;我的應用程序現在可以在iphone 4和5上很好地工作。 – user3806613 2014-11-25 16:38:19