0

<mx:text>複数のオブジェクトを文字列で更新しようとしていhtmlTextます。私が抱えている問題は<mx:text>、データが変更されたときに最後のオブジェクトだけが表示されることです。

<mx:text>タグに基本的なものが欠けていますか?

フレックス4.6を使用

thxアート

test1.html

<rtnA><![CDATA[ <font color="#0000ff" face="helvetica" size="15" >This is rtnA</font> ]]></rtnA>  
<rtnB>this is rtnB</rtnB>
<rtnC>this is rtnC</rtnC>
<rtnD><![CDATA[ <font color="#aa00aa" face="Arial" size="15" >This is </font><font color="#0000ff" face="helvetica" size="15" >rtnD</font> ]]></rtnD>

test1.mxml

<?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">
<s:layout>
    <s:BasicLayout/>
</s:layout>
<fx:Declarations>
    <s:HTTPService id="sendMe" url="http://myUrl.com/test1.html"
                   useProxy="false" method="POST"  resultFormat="object"  >
    </s:HTTPService>
</fx:Declarations>
<fx:Script>
    <![CDATA[


        import mx.core.FlexGlobals;
        import mx.geom.RoundedRectangle;
        import mx.rpc.events.ResultEvent;

        import spark.events.TextOperationEvent; 

        [Bindable]
        public var meta:Object;

        public function send_data(event:MouseEvent, funRtn):void {
            var params:Object = new Object();
            if(funRtn == "A"){
                sendMe.send();
                sendMe.addEventListener("result",getResA);
            }
            if(funRtn == "B"){
                sendMe.send();
                sendMe.addEventListener("result",getResB);
            }
        }

        public function getResA(event:ResultEvent) : void{
            sendMe.removeEventListener("result",getResA);
            status.text="getResA";
            meta = event.result;
            if(meta.hasOwnProperty("rtnA")){
                if(meta.rtnA != null){
                    rtnAtxt.htmlText = meta.rtnA; 
                }   
            }
            if(meta.hasOwnProperty("rtnD")){
                if(meta.rtnD != null){
                    rtnDtxt.htmlText=  meta.rtnD;
                }
            }       
        }

        public function getResB(event:ResultEvent) : void{
            sendMe.removeEventListener("result",getResB);
            status.text="getResB";
            meta = event.result;
            if(meta.hasOwnProperty("rtnB")){
                if(meta.rtnB != null){
                    rtnAtxt.htmlText = meta.rtnB; 
                }   
            }
            if(meta.hasOwnProperty("rtnC")){
                if(meta.rtnC != null){
                    rtnDtxt.htmlText=  meta.rtnC;
                }
            }       
        }


    ]]>
</fx:Script>

<s:SkinnableContainer id="lisc" width="100%" height="100%"  >
    <s:Label id="status">
    </s:Label>

    <mx:Text id="rtnAtxt"  x="20" width="150"  y="20" height="50" >
    </mx:Text>  

    <mx:Text id="rtnDtxt" x="20" width="150" y="20" height="50" >
    </mx:Text>  

    <s:Form id="myForm" x="20"  width="150" y="90"  height="100"> 
        <s:FormItem>
            <s:Button id="myButtonA" width="50" height="20"
                      label="go A" click="send_data(event, 'A')" />
            <s:Button id="myButtonB" width="50" height="20"
                      label="go B" click="send_data(event,'B')" />
        </s:FormItem>
        <s:FormItem>

        </s:FormItem>
    </s:Form>
</s:SkinnableContainer>

4

1 に答える 1

0

タグに問題はありません。各リスナーに指定されたフィールドにmeta.hasOwnProperty値を出力してみて、結果が実際に期待どおりであるかどうかを確認してください。

于 2012-09-07T18:10:31.900 に答える