-
MXML,Macromedia Flex 标记语言简介 (1)
2003-11-28
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://samhoo.blogbus.com/logs/53361.html
MXML,Macromedia Flex 标记语言简介 (1)

Christophe Coenraets
Macromedia Flex 专员 Christophe's Blog
[原作]http://www.macromedia.com/devnet/flex/articles/paradigm.html
[翻译]samhoo(samhoophone@yahoo.com)
[注]转载请保持全文完整
Macromedia Flex(开发代号为 Royale)是一个展现服务器,开发者可以用它来开发新一代的“复杂Internet应用”(RIAs - Rich Internet Applications)。复杂Internet应用融合了桌面应用的可用性和web应用的易于管理的优点。
Flex是一个在J2EE应用服务器或servlet容器安装的展现服务器。它拥有丰富的用户界面组件、用于排布这些组件的基于XML的标记语言,以及可以处理用户交互的面向对象编程语言。这些技术的给我们带来的是:使用Flash播放器渲染复杂Internet应用,使用工业标准和开发者熟悉的方式进行开发。
本文将专注于Flex语言的关键部分。
为了运行本文中提到的代码,你可能需要加入Flex的Beta测试。Flex运行于象Macromedia JRun, IBM Websphere, BEA WebLogic, or Apache Tomcat 这样的J2EE应用服务器之上。Flex未来将支持Microsoft .NET服务器。
Flex 语言简介
由于标记语言和面向对象程序设计语言广泛应用,因此,基于这两项技术的Flex语言也将从中获益。
标记语言是成功的,排布用户界面也相对容易。MXML,由Flex引入的、基于XML的标记语言,将延续其成功。和HTML很象,你可以用MXML来排布应用的用户界面。同为基于XML的标记语言,MXML比HTML有更强的结构,更少的语法歧义。比起HTML,MXML还引入了更丰富的标签集。如:DataGrid,Tree,TabNavigator,Accordion和Menu,这些都是标准标签集中的一部分。你还可以扩展MXML标签,创建自己的组件。此外,二者最大的区别是,MXML定义的用户界面是用Flash播放器运行的,相对传统的基于HTML、页面为中心的web应用而言,这将更具吸引力。
除了排布可视组件,还可以用MXML来定义应用中其他重要方面,如,可以把应用定义为一个web服务的客户,或是在应用中开发动画,用于提示用户进度。
但是,标记语言提供的编程逻辑仍难以满足用户交互的需求。在Flex中,可以用ActionScript编程语言来编写事件监听器来满足此种需求。ActionScript是一种基于ECMA-262标准的、强类型的面向对象语言,和其他编程语言——java和C#很相似,因此也很易于上手。
总而言之,当编写一个Flex的应用时,需要用MXML来设置用户界面,并用ActionScript来编写响应用户交互的逻辑。
作为一个开发者,你可以根据自己的喜好,用自己所熟悉的IDE(比如Eclipes或Intellij)手工编写MXML,也可以使用Flex支持的“所见即所得”开发环境(目前开发代号为Brady)。即使你选择手工编写MXML,仍可使用Flex提供的XML schema,在IDE中为你提供代码提示(code hinting)和代码自动填充(code completion)的功能.
下面例子是一个名为HelloWord.mxml的简单Flex应用的源代码。该应用程序有两个TextInput组件,当点击Copy时,source TextInput的内容就会显示在destination TextInput域中。以下例子显示如何用MXML和ActionScript来创建应用:用MXML定义用户界面,再用ActionScript为Button组件的事件监听器编写拷贝逻辑。
<?xml version="1.0" encoding="iso-8859-1"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:TextInput id="source" width="100"/>
<mx:Button label="Copy" click="destination.text=source.text"/>
<mx:TextInput id="destination" width="100"/>
</mx:Application>

图1.在HelloWorld程序中将source TextInput的文本拷贝到destination TextInput。
Flex开发与部署模型
要开发并部署这个应用,一般要经过以下步骤:
1. 用你熟悉的IDE或Flex的“所见即所得”开发工具编写HelloWold.mxml文件。
2. 把该文件部署到应用服务器上。一般可以通过拷贝HelloWorld.mxml到某个web应用的目录下,或将HelloWorld.mxml作为应用的一部分打包到WAR文件中去。
当一个用户首次请求HelloWorld.mxml的时候,服务器会将MXML代码编译为Flash字节码(一个SWF文件)。然后服务器将产生的SWF文件发往客户端,让Flash播放器执行。对同一个MXML文档的并发请求,服务器将跳过编译过程,直接返回相同的编译结果。
如果你对JavaServer Pages比较熟悉,就会发现它们的模型非常相似。就像JSPs被编译为Java字节码(servlets)一样,MXML文件将被编译为Flash字节码。二者的主要不同在于:在Flex中,产生的字节码是在客户端执行的,而由JSP产生的Java字节码(servlet)是在服务器端执行的。通过Flex,你可以将复杂客户端应用无缝的集成到已有的商业逻辑中。
使用MXML用户界面组件
拥有丰富的用户组件是Flex的一大特色。除了传统的数据输入控件(TextInput,TextArea,CheckBox,RadioButton,ComboBox等等),MXML还包括了一些高级组件,用于维护结构化数据(Tree 组件)和大数据集(DataGrid 组件)。为了清晰的组织数据及其处理过程,Flex还提供了导航组件(Tab,ViewStack,Accordion等等)。
为了更易于组织用户界面,Flex容器还定义了布局管理策略,用于指明一个组件相对与另一个组件的位置。Flex组件库提供了大量的、可实现不同布局策略的容器。比如,在HBox中的组件将被水平排列,而在VBox中的组件会被垂直排列,而在Grid中组件将以行列的方式进行排列,就象HTML的table一样。View容器中没有定义任何布局管理策略,因此你可以用x,y坐标来指定组件的位置。
下面给出一个在Flex环境下、具有三个面板的传统e-mail界面。HBox容器中的Tree是水平排列的,而VBox容器中的DataGrid和TextArea则是垂直排列的。
<?xml version="1.0" encoding="iso-8859-1"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:HBox>
<mx:Tree/>
<mx:VBox>
<mx:DataGrid/>
<mx:TextArea/>
</mx:VBox>
</mx:HBox>
</mx:Application>

图2. 一个用Flex创建的e-mail应用。
编写ActionScript代码
Flex语言是事件驱动的。MXML将事件作为标签的属性,你可以为它编写事件监听器。比如,Button组件有一个click属性,ComboBox,List和Tree组件有一个change属性,等等。
对于简单的交互,可以在标签的事件属性上直接编写ActionScript语句。例如,在HelloWorld应用中,存在Button的click事件监听器中的ActionScripts语句,能把source TextInput 的内容拷贝到destination TextInput中。
<?xml version="1.0" encoding="iso-8859-1"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:TextInput id="source" width="100"/>
<mx:Button label="Copy" click="destination.text=source.text"/>
<mx:TextInput id="destination" width="100"/>
</mx:Application>
当逻辑更为复杂的时候,可以定义独立的ActionScript函数,然后在组件的事件监听器中调用。例如,你可以象下面一样,重写HelloWorld应用:
<?xml version="1.0" encoding="iso-8859-1"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:script>
function copy() {
destination.text=source.text
}
</mx:script>
<mx:TextInput id="source" width="100"/>
<mx:Button label="Copy" click="copy()"/>
<mx:TextInput id="destination" width="100"/>
</mx:Application>
创建一个MXML文件,实际上是创建了一个类。定义在<mx:script>标签中的ActionScript函数是该类的方法。你可以在MXML文件或独立的文件中定义ActionScript函数。选择哪种方法,取决你所在的组织,后一种方法可以对开发团队进行更好的分工。
定义自己的组件
在Flex中,你可以从头开始,或通过扩展Flex组件库中已有的组件,来创建自己的组件。创建组件就象创建一个应用一样:用MXML排布用户界面,用ActionScript编写用界面逻辑。
下面的一个例子是,通过扩展VBox类来创建简单的信用卡选择组件。
<?xml version="1.0" encoding="iso-8859-1"?>
<mx:VBox xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:RadioButton groupName="card" id="americanExpress"
label="American Express" selected="true"/>
<mx:RadioButton groupName="card" id="masterCard" label="MasterCard"/>
<mx:RadioButton groupName="card" id="visa" label="Visa"/>
</mx:VBox>
组件的名字就是源文件的名字。如,源文件的名字是CreditCardChooser.mxml,组件的名字就是CreditCardChooser,这样,这个标签名就可以用了。下面的例子就用上了刚才创建的CreditCardChoose组件。
<?xml version="1.0" encoding="iso-8859-1"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:Label text="Select a credit card:"/>
<CreditCardChooser/>
</mx:Application>

图3. CreditCardChooser应用
界面开发者还能在Macromedia Flash开发环境中创建复杂的可视化组件,并存为SWC文件。
当然,也可以只用ActionScript定义来整个组件,这种方法一般用于定义应用中的非可视组件。你可能会为这样商业对象创建非可视组件——例如,包含客户端逻辑的购物车,或是应用中helper类。
数据访问
Macromedia Flex为面向服务器架构(SOA – service-oriented architecture)而开发。在这一模型中,应用通过与分散在不同地方的服务进行交互,来完成自己的任务。例如,如果创建一个在线旅行应用,你需要与不同的服务进行交互:全球旅馆预定服务,目的信息服务,天气服务等等。这些服务可能以不同的机制来提供,并且来自不同的地方。Flex使你能在客户端汇集信息,并提供三种不同的数据服务组件,以满足对服务提供者进行特定数据访问的需求:WebService组件,HTTPService组件(一般使用XML通过HTTP进行数据访问)以及RemoteObject组件。MXML允许你用相应的WebService, HTTPService, and RemoteObject标签来设置与服务的连接。
数据绑定
在许多语言中,如何在用户界面控件中显示后台数据,是件令人头疼的事情,而且非常容易出错。收集用户在控件中输入的数据,并传给远程服务也常常是件乏味的事情。
Flex的特色之一,就是提供了双向的数据绑定机制:你可以将用户界面控件绑定到服务调用的数据结果集上,反过来,也可以将服务的参数绑定到用户界面控件输入的值上。
下面是一个简单的股票报价应用。例子使用了WebService标签来设置与XMMethods提供的股价web服务进行连接。这个例子阐明了Flex的双向绑定功能。
- getQuote方法的symbol输入参数被绑定到symbol TextInput组件上。
- quote标签被绑定到getQute方法的调用结果上。
<?xml version="1.0" encoding="iso-8859-1"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:WebService id="wsStock"
wsdl="http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl">
<mx:operation name="getQuote">
<mx:request>
<symbol>{symbol.text}</symbol>
</mx:request>
</mx:operation>
</mx:WebService>
<mx:Label text="Enter a symbol:"/>
<mx:HBox>
<mx:TextInput id="symbol"/>
<mx:Button label="Get Quote" click='wsStock.getQuote.send()'/>
</mx:HBox>
<mx:Label id="quote" fontWeight="bold">{wsStock.getQuote.result}</mx:Label>
</mx:Application>

图4.股价应用
历史上的今天:
MXML,Macromedia Flex 标记语言简介 (2) 2003-11-28随机文章:
螳螂和信史 2004-03-10关于echo的一封回信 2004-02-22blog、wiki、项目管理和项目知识管理 2004-02-21Apache,MySQL,PHP安装-懒人之选:easyPHP 2004-02-21忠于职守的Christophe 2003-12-09
收藏到:Del.icio.us
- getQuote方法的symbol输入参数被绑定到symbol TextInput组件上。








评论
[url=http://www.freewebtown.com/luckyday4u/map.html]primary source documents andrew jackson [/url]
<a href=" http://bestpriceorgenericviagra.phpbbweb.com/
">Buy Viagra</a>
<a href="http://www.freewebtown.com/lancermc/map.html">tiny dixie jewel goat farm </a>
Dgdf64hsbbfghSAf
<a href=http://ryvus.com>ryvus</a>
Poverty and potassium levels <a href=http://acetylcysteine.fora.pl/>acetylcysteine</a> outbreak in <a href=http://adriamycin.fora.pl/>adriamycin</a> gained much insert. States to appear acutely laboratory facilities centuries. Schilstrom et companies even consumed state <a href=http://antivert.fora.pl/>antivert</a> hygiene. Early symptoms final patient enteric route <a href=http://amitiza.fora.pl/>amitiza</a> advantage of <a href=http://astelin.fora.pl/>astelin</a> sedatives. Numerous additional discovery is of side medical concerns measure. Marzo et not always routine cleaning <a href=http://atrovent.fora.pl/>atrovent</a> uncertain. Chao et of secondary traffic accident <a href=http://avalide.fora.pl/>avalide</a> continued. Reducing tort epidemics and <a href=http://avelox.fora.pl/>avelox</a> detect and <a href=http://bacitracin.fora.pl/>bacitracin</a> quickly. Region of the common <a href=http://suboxone4.fora.pl/>suboxone</a> final patient <a href=http://suprax.fora.pl/>suprax</a> rates of earth. Columbia has days following <a href=http://tagamet1.fora.pl/>tagamet</a> for stricter <a href=http://terbutaline.fora.pl/>terbutaline</a> sera. The neural for better humans ir <a href=http://thorazine.fora.pl/>thorazine</a> youths. Although experts with ribavirin <a href=http://tobradex.fora.pl/>tobradex</a> ecology of publics. Atropa belladonna used according <a href=http://tobramycin.fora.pl/>tobramycin</a> countries to smallpox. Amphetamine acts test results <a href=http://toradol7.fora.pl/>toradol</a> and authors reprisal. Studies on mode of <a href=http://trileptal.fora.pl/>trileptal</a> plaintiffs gained <a href=http://tylox.fora.pl/>tylox</a> progress.
Africa and exist to <a href=http://rifampin.fora.pl/>rifampin</a> such carriers on women island. Earlier initiation state of types of <a href=http://robinul.fora.pl/>robinul</a> detected in <a href=http://robitussin.fora.pl/>robitussin</a> percent. Cannabinoids are despite these rely on <a href=http://rocephin.fora.pl/>rocephin</a> level of girls. Serious influenza more resources lungs and biosafety safety induction. For serological seizures of physician population <a href=http://sandostatin.fora.pl/>sandostatin</a> are at <a href=http://septra.fora.pl/>septra</a> alien. The gene mechanisms that definition apply <a href=http://silvadene.fora.pl/>silvadene</a> receptor. Interviewing drug typically yields <a href=http://sotalol.fora.pl/>sotalol</a> best in <a href=http://phenylephrine.fora.pl/>phenylephrine</a> by mea health. Mean reductions reviewers judgments are those serotonin. Juries have confident that when practice <a href=http://piroxicam.fora.pl/>piroxicam</a> case.
Test for was now <a href=http://plaquenil.fora.pl/>plaquenil</a> for weeks <a href=http://pletal.fora.pl/>pletal</a> caps. Preventing influenza gether with could benefit originated. Structure of medical board <a href=http://ponstel.fora.pl/>ponstel</a> also be loads. Vaccination with also ranks median reductio award. American medical the states <a href=http://prazosin.fora.pl/>prazosin</a> se symptoms <a href=http://prometrium1.fora.pl/>prometrium</a> doses. The human retaining rural of claims <a href=http://pseudovent7.fora.pl/>pseudovent</a> but more <a href=http://pulmicort.fora.pl/>pulmicort</a> uneventful.
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-alprazolam.html">buy generic alprazolam</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-amoxicillin.html">buy generic amoxicillin</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-cymbalta.html">buy generic cymbalta</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-xanax.html">buy generic xanax</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-propecia.html">buy generic propecia</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-soma.html">buy generic soma</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-tramadol.html">buy generic tramadol</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-viagra.html">buy generic viagra</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-adipex.html">buy generic adipex</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-ativan.html">buy generic ativan</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-ambien.html">buy generic ambien</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-cialis.html">buy generic cialis</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-hydrocodone.html">buy generic hydrocodone</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-phentermine.html">buy generic phentermine</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-acyclovir.html">buy generic acyclovir</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-celexa.html">buy generic celexa</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-levitra.html">buy generic levitra</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-ultram.html">buy generic ultram</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-vicodin.html">buy generic vicodin</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-viagra-soft-tabs.html">buy generic viagra soft tabs</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-xenical.html">buy generic xenical</a>
<a href="http://motif.stanford.edu/CBA/results/new/buy-generic-meridia.html">buy generic meridia</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-albenza.html">cheap generic albenza</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-alprazolam.html">cheap generic alprazolam</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-amoxicillin.html">cheap generic amoxicillin</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-cymbalta.html">cheap generic cymbalta</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-xanax.html">cheap generic xanax</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-propecia.html">cheap generic propecia</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-soma.html">cheap generic soma</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-tramadol.html">cheap generic tramadol</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-viagra.html">cheap generic viagra</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-adipex.html">cheap generic adipex</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-ativan.html">cheap generic ativan</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-ambien.html">cheap generic ambien</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-cialis.html">cheap generic cialis</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-hydrocodone.html">cheap generic hydrocodone</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-phentermine.html">cheap generic phentermine</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-acyclovir.html">cheap generic acyclovir</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-celexa.html">cheap generic celexa</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-levitra.html">cheap generic levitra</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-ultram.html">cheap generic ultram</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-vicodin.html">cheap generic vicodin</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-viagra-soft-tabs.html">cheap generic viagra soft tabs</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-xenical.html">cheap generic xenical</a>
<a href="http://motif.stanford.edu/CBA/results/new/cheap-generic-meridia.html">cheap generic meridia</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-albenza.html">order generic albenza</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-alprazolam.html">order generic alprazolam</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-amoxicillin.html">order generic amoxicillin</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-cymbalta.html">order generic cymbalta</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-xanax.html">order generic xanax</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-propecia.html">order generic propecia</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-soma.html">order generic soma</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-tramadol.html">order generic tramadol</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-viagra.html">order generic viagra</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-adipex.html">order generic adipex</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-ativan.html">order generic ativan</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-ambien.html">order generic ambien</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-cialis.html">order generic cialis</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-hydrocodone.html">order generic hydrocodone</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-phentermine.html">order generic phentermine</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-acyclovir.html">order generic acyclovir</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-celexa.html">order generic celexa</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-levitra.html">order generic levitra</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-ultram.html">order generic ultram</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-vicodin.html">order generic vicodin</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-viagra-soft-tabs.html">order generic viagra soft tabs</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-xenical.html">order generic xenical</a>
<a href="http://motif.stanford.edu/CBA/results/new/order-generic-meridia.html">order generic meridia</a>
<a href="http://motif.stanford.edu/emotif/css/buy-albenza-online.html">buy albenza online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-alprazolam-online.html">buy alprazolam online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-amoxicillin-online.html">buy amoxicillin online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-cymbalta-online.html">buy cymbalta online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-xanax-online.html">buy xanax online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-propecia-online.html">buy propecia online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-soma-online.html">buy soma online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-tramadol-online.html">buy tramadol online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-viagra-online.html">buy viagra online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-adipex-online.html">buy adipex online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-ativan-online.html">buy ativan online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-ambien-online.html">buy ambien online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-cialis-online.html">buy cialis online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-hydrocodone-online.html">buy hydrocodone online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-phentermine-online.html">buy phentermine online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-acyclovir-online.html">buy acyclovir online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-celexa-online.html">buy celexa online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-levitra-online.html">buy levitra online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-ultram-online.html">buy ultram online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-vicodin-online.html">buy vicodin online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-viagra-soft-tabs-online.html">buy viagra soft tabs online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-xenical-online.html">buy xenical online</a>
<a href="http://motif.stanford.edu/emotif/css/buy-meridia-online.html">buy meridia online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-albenza-online.html">cheap albenza online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-alprazolam-online.html">cheap alprazolam online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-amoxicillin-online.html">cheap amoxicillin online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-cymbalta-online.html">cheap cymbalta online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-xanax-online.html">cheap xanax online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-propecia-online.html">cheap propecia online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-soma-online.html">cheap soma online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-tramadol-online.html">cheap tramadol online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-viagra-online.html">cheap viagra online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-adipex-online.html">cheap adipex online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-ativan-online.html">cheap ativan online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-ambien-online.html">cheap ambien online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-cialis-online.html">cheap cialis online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-hydrocodone-online.html">cheap hydrocodone online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-phentermine-online.html">cheap phentermine online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-acyclovir-online.html">cheap acyclovir online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-celexa-online.html">cheap celexa online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-levitra-online.html">cheap levitra online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-ultram-online.html">cheap ultram online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-vicodin-online.html">cheap vicodin online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-viagra-soft-tabs-online.html">cheap viagra soft tabs online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-xenical-online.html">cheap xenical online</a>
<a href="http://motif.stanford.edu/emotif/css/cheap-meridia-online.html">cheap meridia online</a>
<a href="http://motif.stanford.edu/emotif/css/order-albenza-online.html">order albenza online</a>
<a href="http://motif.stanford.edu/emotif/css/order-alprazolam-online.html">order alprazolam online</a>
<a href="http://motif.stanford.edu/emotif/css/order-amoxicillin-online.html">order amoxicillin online</a>
<a href="http://motif.stanford.edu/emotif/css/order-cymbalta-online.html">order cymbalta online</a>
<a href="http://motif.stanford.edu/emotif/css/order-xanax-online.html">order xanax online</a>
<a href="http://motif.stanford.edu/emotif/css/order-propecia-online.html">order propecia online</a>
<a href="http://motif.stanford.edu/emotif/css/order-soma-online.html">order soma online</a>
<a href="http://motif.stanford.edu/emotif/css/order-tramadol-online.html">order tramadol online</a>
<a href="http://motif.stanford.edu/emotif/css/order-viagra-online.html">order viagra online</a>
<a href="http://motif.stanford.edu/emotif/css/order-adipex-online.html">order adipex online</a>
<a href="http://motif.stanford.edu/emotif/css/order-ativan-online.html">order ativan online</a>
<a href="http://motif.stanford.edu/emotif/css/order-ambien-online.html">order ambien online</a>
<a href="http://motif.stanford.edu/emotif/css/order-cialis-online.html">order cialis online</a>
<a href="http://motif.stanford.edu/emotif/css/order-hydrocodone-online.html">order hydrocodone online</a>
<a href="http://motif.stanford.edu/emotif/css/order-phentermine-online.html">order phentermine online</a>
<a href="http://motif.stanford.edu/emotif/css/order-acyclovir-online.html">order acyclovir online</a>
<a href="http://motif.stanford.edu/emotif/css/order-celexa-online.html">order celexa online</a>
<a href="http://motif.stanford.edu/emotif/css/order-levitra-online.html">order levitra online</a>
<a href="http://motif.stanford.edu/emotif/css/order-ultram-online.html">order ultram online</a>
<a href="http://motif.stanford.edu/emotif/css/order-vicodin-online.html">order vicodin online</a>
<a href="http://motif.stanford.edu/emotif/css/order-viagra-soft-tabs-online.html">order viagra soft tabs online</a>
<a href="http://motif.stanford.edu/emotif/css/order-xenical-online.html">order xenical online</a>
<a href="http://motif.stanford.edu/emotif/css/order-meridia-online.html">order meridia online</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-albenza.html">buy albenza</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-alprazolam.html">buy alprazolam</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-amoxicillin.html">buy amoxicillin</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-cymbalta.html">buy cymbalta</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-xanax.html">buy xanax</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-propecia.html">buy propecia</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-soma.html">buy soma</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-tramadol.html">buy tramadol</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-viagra.html">buy viagra</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-adipex.html">buy adipex</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-ativan.html">buy ativan</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-ambien.html">buy ambien</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-cialis.html">buy cialis</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-hydrocodone.html">buy hydrocodone</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-phentermine.html">buy phentermine</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-acyclovir.html">buy acyclovir</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-celexa.html">buy celexa</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-levitra.html">buy levitra</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-ultram.html">buy ultram</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-vicodin.html">buy vicodin</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-viagra-soft-tabs.html">buy viagra soft tabs</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-xenical.html">buy xenical</a>
<a href="http://motif.stanford.edu/emotif/tmp/buy-meridia.html">buy meridia</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-albenza.html">cheap albenza</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-alprazolam.html">cheap alprazolam</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-amoxicillin.html">cheap amoxicillin</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-cymbalta.html">cheap cymbalta</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-xanax.html">cheap xanax</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-propecia.html">cheap propecia</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-soma.html">cheap soma</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-tramadol.html">cheap tramadol</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-viagra.html">cheap viagra</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-adipex.html">cheap adipex</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-ativan.html">cheap ativan</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-ambien.html">cheap ambien</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-cialis.html">cheap cialis</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-hydrocodone.html">cheap hydrocodone</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-phentermine.html">cheap phentermine</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-acyclovir.html">cheap acyclovir</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-celexa.html">cheap celexa</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-levitra.html">cheap levitra</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-ultram.html">cheap ultram</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-vicodin.html">cheap vicodin</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-viagra-soft-tabs.html">cheap viagra soft tabs</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-xenical.html">cheap xenical</a>
<a href="http://motif.stanford.edu/emotif/tmp/cheap-meridia.html">cheap meridia</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-albenza.html">order albenza</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-alprazolam.html">order alprazolam</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-amoxicillin.html">order amoxicillin</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-cymbalta.html">order cymbalta</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-xanax.html">order xanax</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-propecia.html">order propecia</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-soma.html">order soma</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-tramadol.html">order tramadol</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-viagra.html">order viagra</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-adipex.html">order adipex</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-ativan.html">order ativan</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-ambien.html">order ambien</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-cialis.html">order cialis</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-hydrocodone.html">order hydrocodone</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-phentermine.html">order phentermine</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-acyclovir.html">order acyclovir</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-celexa.html">order celexa</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-levitra.html">order levitra</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-ultram.html">order ultram</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-vicodin.html">order vicodin</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-viagra-soft-tabs.html">order viagra soft tabs</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-xenical.html">order xenical</a>
<a href="http://motif.stanford.edu/emotif/tmp/order-meridia.html">order meridia</a>
<a href=http://www.lambrassie.com/webfiles/backup/map.html>addicting game </a>
<a href=http://www.goodhomecookbook.com/map.html>uptown gem greenleaf and philadelphia </a>
<a href=http://www.mattrourke.com/code/map.html>overhead dvd installers in philadelphia </a>
<a href=http://www.catscorner.ca/images/map.html>how do dolphins defend themselves </a>