簡體   English   中英

“主要”階層的進入階段

[英]Access stage from the “main” class

我有以下ActionScript:

package {
    import flash.display.Sprite;

    public class Application extends Sprite {
        public function Application(){
            width=1000;
            height=500;
        }
    }
}

我用mxmlc Application.as編譯。 我注意到的是,Application不是舞台對象,就像我想的那樣,因為舞台的寬度和高度沒有變化。

您如何從Application進入階段?

您巧妙地誤解了“階段”的含義。 該階段是Flash必須使用的顯示區域的最低級別的引用,因此其大小最終由執行Flash的容器決定。

因此,當您在獨立的Flash播放器中查看內容時,要調整舞台的大小,請調整播放器本身的大小,並且當您查看HTML頁面中嵌入的內容時,只有在瀏覽器更改嵌入Flash元素的大小時,舞台才會重新調整大小。進入(例如,通過Javascript)。 同樣,如果將Flash嵌入到.NET應用程序中,則.NET邏輯可以控制舞台的大小,依此類推。

由於這些原因,除非容器提供了一種執行此操作的方法,否則通常不可能在應用程序邏輯中調整階段的大小。 實際上,大多數瀏覽器都確實通過JavaScript公開了此類功能,因此在瀏覽器中,您通常可以通過調用JS掛鈎來更改Flash的embed元素的大小來調整舞台大小。 相比之下,獨立播放器不會顯示此類異常分支,因此無法調整舞台大小(當然,可以切換全屏顯示除外)。

作為補充,正如Joel Hooks所指出的,您可以在項目中包含以下形式的語句: [SWF(width=1000,height=500)] 這將導致編譯的SWF包含指定大小的元數據。 但是,該元數據僅是一個建議,是否接受它完全取決於容器。 獨立播放器將保留此類元數據(用於初始容器大小),但瀏覽器將完全忽略它。

暫無
暫無

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

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