代码之家  ›  专栏  ›  技术社区  ›  Thufir

何时使用xml中的脚本

  •  2
  • Thufir  · 技术社区  · 14 年前

    由于对xml有点陌生,我看到了脚本嵌入到xml中的示例。除非是xhtml,否则我不明白为什么要将一个部分标记为脚本。例如:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="300" height="150" styleName="userstory">
    
        <fx:Style source="styles/styles.css"/>
    
        <fx:Text x="5" y="5" width="275" height="135" text="{userStoryText}" fontFamily="notes" fontSize="24"/>
    
        <mx:Script>
            <![CDATA[
                public var userStoryText:String;
    
                private function handleDown(e:Event):void {
                    this.startDrag();
                }
    
                private function handleUp(e:Event):void {
                    this.stopDrag();
                }
    
                override protected function createChildren():void {
                    super.createChildren();
                    super.addEventListener(MouseEvent.MOUSE_DOWN,handleDown);
                    super.addEventListener(MouseEvent.MOUSE_UP,handleUp);
                }
            ]]>
        </mx:Script>
    </mx:Canvas>
    

    http://forums.adobe.com/thread/644918

    以上是纯xml,为什么要使用脚本?只有某些语言才有意义——只有javascript和adobe flex?

    谢谢,

    图菲尔

    2 回复  |  直到 14 年前
        1
  •  3
  •   Thalaivar    14 年前

    如果我没有错,你是在问为什么 将代码与XML混合?

    使用两种语言编写Flex 应用程序:MXML和ActionScript。 您用于布局用户界面 声明性地定义非视觉方面 应用程序的,如访问 用户界面之间的绑定 上的组件和数据源 服务器。

    http://livedocs.adobe.com/flex/3/html/help.html?content=mxml_2.html

    如果你还有疑问,如果你的问题还没有得到回答,请告诉我。

        2
  •  1
  •   JeffryHouser    14 年前

    我不太清楚你在问什么。

    Script标记是在MXML组件中包含ActionScript代码的一种方法。在ActionScript中有很多事情是MXML无法做到的。从您的示例中,脚本重写了一个方法,并在该方法上定义了一个公共属性。这两件事在MXML中是做不到的。

    理论上,事件处理程序可以在MXML中内联实现;但如果事件处理程序有多行或任何条件逻辑,则会变得非常麻烦。我认为无法与MXML中的“>”、“<”或“&”进行比较。

    不然你怎么做?