2009-10-26 3 views

ответ

2

Из документации flash.display.stage в AS3:

Объект Stage не доступен во всем мире. Вам нужно получить доступ к нему через свойство stage экземпляра DisplayObject.

также относится к этому: Setting Stage properties

2

Вы действительно не можете ... цвет фона действительно не свойство этапа, вы должны работать вокруг его путем изменения некоторого фона клипа. Что касается размера, в AIR вы можете напрямую изменить NativeWindow dimesions, но в браузере вы должны использовать JavaScript, чтобы изменить размер объекта:

document.getElementById("myFlash").height=100; 

Вы можете использовать stage.width = 100, но это изменит размеры отображаемого объекта, усечет его содержимое и оставит пустое место рядом с ним ... Фактически Stage.width доступен только для чтения в AS3 и AS2.

+0

Хотя это не тот ответ, который я искал, это правильный ответ. Понимая, что это в основном readonly через ActionScript. Вы можете установить его в Flash CS4 сразу с места в карьер, поэтому я не понимаю, почему они сделали это таким образом. В любом случае AS3 - это огромное улучшение, но все еще есть изломы, которые они должны сгладить. – akway

+0

+ «спас меня от еще худшей головной боли, чем я уже имел» сразу после «ActionScript» – akway

+0

AFAK поведение точно такое же, как в AS2 ... Stage.width также был доступен только для чтения в AS2 (я просто понял, что в AS3 он перезаписывается как только для чтения для Stage). – Cay

2

Зависит от того, как вы компилируете свой .swf, но это вполне возможно. Если вы строите проект Flex, вы можете установить свойство backgroundColorApplication или использовать файл css для его изменения. например

<mx:Application 
    backgroundColor="#000000" 
    width="500" 
    height="500" 
    layout="absolute" 
    xmlns:mx="http://www.adobe.com/2006/mxml"> 

</mx:Application> 

Если вы строите в Flex («Actionscript Project») или с помощью mxmlc компилятора, вы можете использовать недокументированные «SWF» тег метаданных, например,

package 
{ 
    [SWF(width="500", height="500", backgroundColor="#000000")] 
    public class MyApp extends Sprite 
    { 

    } 
} 

И, конечно же, если вы используете Flash, «приложение», вы можете просто нажать на сцену, а затем перейдите на панель свойств и задать ширину, высоту и цвет фона.

+0

Обратите внимание, что ни один из них не является ActionScript. Оба переводятся в директивы компилятора, и ни один из них не выполняется во время выполнения. – Cay

+0

Ха-ха, уп! * Голосование самостоятельно вниз * – typeoneerror

+0

«Вы не можете голосовать за свой собственный пост». : | лол – typeoneerror

0

Это очень просто. В основном блоке CData «это» - это объект приложения. Тогда:

this.setStyle("backgroundColor", 0xff0000); 

Это намного лучше, чем начать создают спрайты и рендеринг с графическим слоем, так как предположительно лучшая производительность с плоской заливкой в ​​отсутствии каких-либо объекты в передней.

Смежные вопросы