2011-06-27 3 views
3

私はまだFlash Professional以来持っている悪い習慣かもしれませんが、私はちょうど空のアプリケーションに作成したシンプルなスプライトまたは/およびビットマップを追加しようとしていて、それは起こっていません。Flex 4.5.1新しいアプリケーションに単純なビットマップまたはスプライトを追加しますか?

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       minWidth="955" minHeight="600" 
       creationComplete="application1_creationCompleteHandler(event)"> 

    <fx:Script> 
     <![CDATA[ 
      import mx.core.FlexGlobals; 
      import mx.core.UIComponent; 
      import mx.events.FlexEvent; 


      protected function application1_creationCompleteHandler(event : FlexEvent) : void 
      { 
       var s:Sprite = new Sprite(); 
       s.graphics.beginFill(0xFF0000, 0.5); 
       s.graphics.drawRect(0, 0, 100, 100); 
       s.graphics.endFill(); 

       this.addChild(s); 
      } 

     ]]> 
    </fx:Script> 
</s:Application> 

私が間違っていることを誰かに教えてもらえますか?

答えて

4

スプライトをUIComponentまたはSpriteVisualElementに入れてみてください。 これは私の作品:さんは:アプリケーション「いくつかの理由から

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" 
       creationComplete="test()"> 

    <fx:Script> 
     <![CDATA[ 
      import spark.core.SpriteVisualElement; 

      private function test():void 
      { 
       var sprCont:SpriteVisualElement = new SpriteVisualElement(); 
       sprCont.horizontalCenter = 0; 
       sprCont.verticalCenter = 0; 

       var spr:Sprite = new Sprite(); 
       spr.graphics.beginFill(0xFF0000); 
       spr.graphics.drawCircle(0,0, 100); 
       spr.graphics.endFill(); 

       sprCont.addChild(spr); 
       addElement(sprCont); 
      } 
     ]]> 
    </fx:Script> 
</s:Application> 

タグが示されていないが、彼らはそこにあります。 HTH、 FTQuest

+0

pfeewww ... Flex 4.5の新しいコンポーネントについて忘れていました...これは仕事でした。ありがとうございました。アプリケーションタグは表示されません。ソースコード全体をコードとしてマークする必要があるからですあなたが答えを投稿している間、テキストエディタ上のボタンから。私はあなたのためにそれを編集:) –

1

考慮すべき点がいくつかあります。スプライトの高さや幅は指定しません。高さと幅がデフォルトで0にならないでしょう。効果的にそれを不可視にしますか?

子供を作成する方法をFlex Component Lifecycleの方法で行うことを強くお勧めします。 creationCompleteハンドラを使用する代わりに、createChildren()をオーバーライドしてスプライトを作成し、追加します。コンポーネントの描画、サイジング、および配置には、updateDisplayList()を使用するのが一般的です。

2番目の注意点は、アプリケーションが実際にはスプライトであることです。あなたがアプリケーション上で直接描画を行う可能性がやろうとしている内容に応じて:私はアプリケーションに直接描画するよりも、スプライトを使用することがより柔軟になります感じる

this.graphics.beginFill(0xFF0000, 0.5); 
this.graphics.drawRect(0, 0, 100, 100); 
this.graphics.endFill(); 

。それは達成しようとしていることに依存します。

+0

私は、MenuBarアイテムのための何らかの種類の「背景」要素を作成するための方法を見つけようとしています。アイデア全体は、各MenuBar項目に背景として使用されるビットマップまたはスプライトを持つことです。 –

+0

それはあなたの意図です、あなたのために背景スキンスタイルを使用しますか? http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/MenuBar.html#styleSummary – JeffryHouser

+0

メニュー項目ごとに異なりますか?私はそれがすべての項目のためのグローバルtought ... –

関連する問題