何时在xml中使用脚本

时间:2010-11-07 05:12:57

标签: xml flex

对于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吗?

感谢,

Thufir

2 个答案:

答案 0 :(得分:3)

  

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

我认为您有点困惑,您可以将ActionScript代码放在单独的文件中,并在主MXML组件文件中调用它们,或者在MXML组件本身内使用您的actionscript代码。

  

您使用两种语言编写Flex   应用程序:MXML和ActionScript。   MXML是一种XML标记语言   你用来布局用户界面   组件。你也使用MXML   以声明方式定义非可视方面   一个应用程序,如访问   服务器和数据上的数据源   用户界面之间的绑定   组件和数据源   服务器

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

如果您的问题仍未得到解答,请告诉我。

答案 1 :(得分:1)

我不完全确定你在问什么。

Flex是ActionScript和MXML的混合体。 MXML是一种XML方言,正如您所说的那样。

Script标记是一种在MXML组件中包含ActionScript代码的方法。在ActionScript中可以做很多事情,无法在MXML中完成。在您的示例中,脚本会覆盖方法并在方法上定义公共属性。这两件事在MXML中无法完成。

事实上,事件处理程序可以在MXML中在线实现;但如果您的事件处理程序有多行或任何条件逻辑,则会非常麻烦。我不认为可以与'&gt;','&lt;'或'&amp;'进行比较。在MXML中。

你还会怎么做?