14.8.绑定到一个一般的对象

14.8.1. 问题我想通过使用一个顶层的对象实例做为源来绑定到一个属性上。14.8.2. 解决办法使用类mx.utils.ObjectProxy 来在对象与分发绑定的事件间进行交换。14.8.3. 讨论直接创建一个绑定到一个一般的对象上只会在目标对象初始化的时候引入一个更新操作。为了源对象的属性值得到更新的时候,能同时更新目标对象的值,需要使用业ObjectProxy。创建一个ObjectProxy 对象,需要传递该对象到构造函数中。例如:+展开-ActionScriptvarobj:Object={name:'TomWaits',album:'RainDogs',genre:'Rock'}
http://www.w3dev.cn/article/20100402/2073.aspx

13.6.遍历集合对象并记录位置

{city:"Sacramento",state:"California",region:"West"},{city:"Atlanta",state:"Georgia",egion:"South"}]);cursor=coll.createCursor();}//这个例子中,IViewCursor对象的findFirst方法根据文本框中的数据定位第一个匹配的集合数据:CodeView:privatefunctionfindRegion():void{varsort:Sort=newSort();sort.fields=[newSortField("region")];coll.sort=sor
http://www.w3dev.cn/article/20100401/2058.aspx

13.7.创建HierarchicalViewCollection对象

ect, index:int):Boolean从指定索引处的节点删除子节点确定哪个节点被操作取决于IHierarchicalData 接口的getData 方法是否有良好的实现方法。把键值对的对象传入getData 方法,返回包含相同键值对的节点。HierarchicalCollectionView可检测源数据对象中哪个对象将被操作。这里定义了层级数据对象, 传递一个HierarchicalData 对象,创建HierarchicalCollectionView:+展开-ActionScriptvarlargeObject:Object=[{id:"1",name:"Misc",type:"p
http://www.w3dev.cn/article/20100401/2059.aspx

13.12.用唯一的IDs标识数据对象

的应用程序在多个位置有多个数据对象,但需要确保所有对象的都分配有唯一的ID 属性,以便用于测试对象之间的平等并确定他们是否表示相同的数据片段。13.12.2. 解决办法你的数据可实现IUID 接口,使用mx.core.UIDUtil.createUID 方法给对象生成新的唯一的id。13.12.3. 讨论在有些情况下是非常有用的,比如使用Adobe LiveCycle messaging 或其他服务,因为这些对象是通过简单相等(== 操作符)或复杂相等( === 操作符)。通过频繁比较对象的所有属性是否相同来确定两个对象是否表示相同的数据,对于数量巨大而复杂的对象的计算将非常消耗资源。实现IU
http://www.w3dev.cn/article/20100401/2064.aspx

如何使用ajax.dll简要说明

.web 里面 加上+展开-XMLhttpHandlersaddverb="POST,GET"path="ajax/*.ashx"type="Ajax.PageHandlerFactory,Ajax"/add/httpHandlers2.在应用页面的Page_Load中添加+展开-C#Ajax.Utility.RegisterTypeForAjax(typeof(页面名));3.在要调用的后台方法前加ajax的声明①操作session时+展开-C#[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]publicvoidGetBranc
http://www.w3dev.cn/article/20100319/1965.aspx

5.7.在Tree控件中使用复杂数据对象

ctiongetoffice():Office{return_office;}}}Office 和Name 对象都是由Office 对象的名字和地址组成的简单值对象,和firstName,lastName 属性的Name 对象。没有一个ITreeDataDescriptor 对象来描述ComplexDataType,Office 和Name 所有属性之间的关系,Tree 将不能完全显示这些对象的Array 和ArrayCollection,而将显示Array 中不能使扩展的两个简单对象。ITreeDataDescriptor 接口定义了以下数据:addChildAt(parent:Objec
http://www.w3dev.cn/article/20100311/1877.aspx

7.6.使用项渲染器把SWF对象作为一个菜单项显示

7.6.1.问题用一个图片或SWF 做菜单。7.6.2.解决办法用itemRenderer 对象加载SWF 文件,并自定义菜单。7.6.3.讨论自定义菜单的第一步是把你想要用到的字体和图形存在一些SWF 文件里,并且把这些SWF 文件放在一文件夹下。在我们的例子中,这个文件夹命名为“swf”,你可以用任工具生成这些SWF 文件。接下来,创建一个renderer 组件。在本例中我们使用Canvas,并在Canvas 里增加一个SWFLoader 组件。如果我们想用Canvas 做自定义菜单,还有一个条件,就是要让Canvas实现IMenuItemRenderer 接口,因为接口的需要,我们在Ca
http://www.w3dev.cn/article/20100311/1903.aspx

4.1.正确的设置一个文本对象的值

4.1.1. 问题我想正确的显示出可能被传送到文本对象的HTML 和简单字符串4.1.2. 解决办法使用htmlText 和text 属性,依靠输入模式,来适当地渲染文本和采用正则表达式分析被传到Text 对象中的字符串。4.1.3. 讨论Text 和TextArea 不会正确的显示HTML 除非HTML 被传Text or TextArea 组件的htmlText 属性。通常把非HTML 文本传递给Text or TextArea 不会有问题, 除非文本里可能包含了HTML 字符.正则表达式是一个强力工具,它可以让你快速而且高效解析文本或者文本模板,避免冗长乏味的字符串操作。这个表达式寻找“
http://www.w3dev.cn/article/20100310/1852.aspx

FireFox下端口不一致导致跨域

  在Firefox下,如果url路径带有端口号,而ajax对象访问的路径为绝对路径并且端口号不一样时,会出现uncaught exception: (1? XMLHttpRequest.open ?CP 3的错误,这个是因为端口号不一致时导致出现的跨域错误。而IE下不会因为请求的端口号不一致出现跨域的问题。  其实出现端口号不一致的错误实在是微乎其微,有谁会一个网站开放两个端口号,浏览器访问时使用一个,ajax对象请求又使用另一个呢??这不是找罪受吗,还得处理跨域的问题。  当ajax出现端口跨域的问题时,Firefox下哪怕设置了document.domain也解决不了跨域的问题,要想
http://www.w3dev.cn/article/20100304/1775.aspx

最新AJAX(XMLHttpRequest)进行跨域请求方法详解

-//W3C//DTD XHTML 1.0 Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhtml xmlns=http://www.w3.org/1999/xhtmlhead title孟宪会之AJAX跨域请求测试/title/headbody input type='button' value='开始测试' onclick='crossDomainRequest()' / div id=content/div script type=te
http://www.w3dev.cn/article/20100304/1777.aspx

1.8.定义数组和对象

x:Stringmx:StringFlash/mx:Stringmx:Array/mx:Array如要在MXML中创建对象,可使用mx:Object 标签并添加所有对象属性及其值。例如:+展开-XMLmx:Objectid="person"firstName="John"lastName="Smith"age="50"socialSecurity="123-45-6789"/在MXML创建对象有个限制即不能创建多个嵌套的对象,而在script标签中可创建包含多个复杂对象对象,你可以先创建一个类型为Object的变量,再调用构造函数,最好添加属性:+展开-ActionScriptvarobj
http://www.w3dev.cn/article/20100304/1785.aspx

1.17.检测对象数据类型

1.17.1.问题我想检测下传入到方法的对象是什么类型。1.17.2.解决办法使用is操作符检测对象类型或者是父类对象的type属性。1.17.3.讨论要检测一个对象的类型,ActionScript提供了is操作符,检测对象类型并返回true或false。如果对象与测试目标一致或是其子类则返回true,比如,因为Canvas对象继承自UIComponent,is操作符返回true。如果IComponent测试它为Canvas类型则返回false。因为UIComponent并不是继承自Canvas。看下面的代码:+展开-ActionScriptpublicfunctionTypeTest(){
http://www.w3dev.cn/article/20100304/1794.aspx

ajax指定为post但是未设置content-type或未指定键时时如何获取提交的内容

;xhr.open("post","alexa.aspx?m=MM",true)//xhr.setRequestHeader("Content-Type","text/plain");//xhr.setRequestHeader("content-type","application/x-www-form-urlencoded")xhr.send("itemshow/item");xhr.onreadystatechange=function(){if(xhr.readyState==4)alert(xhr.responseText)}/script  更多ajax问题请参考,ajax问题总结
http://www.w3dev.cn/article/20100302/ajax-post-content-type-no-set.aspx

15.1.创建Sound对象及载入声音

问题我想载入声音到SWF应用程序上。解决办法创建一个Sound对象,载入外部的声音文件讨论创建一个Sound对象很容易,这跟创建其他类实例差不多,首先记得先引入Sound类库:+展开-ActionScriptimportflash.media.Sound;Var_sound:Sound=newSound();接着我们需要一个声音文件,比如song.mp3,和swf文件放在服务器的同一个目录下。要载入声音文件到Sound对象上,首先创建一个URLRequest对象(需要导入flash.net.URLRequest):+展开-ActionScriptsoundFile=newURLRequest(
http://www.w3dev.cn/article/20100301/1664.aspx

17.2.写入数据到共享对象

问题我想添加数据到LSO上.解决办法给共享对象的data对象添加属性值讨论共享对象(Shared objects)有个内建的属性data,data属性类型为object,因此可以添加任何信息上去:+展开-ActionScript//存储username值给example共享对象example.data.username="Darron";和早期版本的ActionScript不同,现在不能直接把属性值赋值给共享对象本身了,如果这样做了编译器会直接报错:+展开-ActionScriptexample.variable="Thiswillcauseacompile-timeerror.";另外,直
http://www.w3dev.cn/article/20100301/1699.aspx

17.3.保存本地共享对象

况会导致Flash自动试图保存LSO数据到硬盘上:当Flash播放器关闭时,当共享对象被垃圾回收时,当调用SharedObject.clear( )方法时。但是自动保存功能并不很实用,因为还有很多原因需要及时保存共享对象数据,因此我们可以显式调用SharedObject.flush( )方法:+展开-ActionScriptvarflushResult:String=example.flush();flush( )方法有个可选的参数用于指定最小的硬盘空间,单位为字节,默认为0,指用最小的空间正好存储本地共享对象。当flush( )方法触发时,它试图把数据写到客户端上,调用结果有三种:如果用户
http://www.w3dev.cn/article/20100301/1700.aspx

17.5.删除共享对象中保存的数据

问题我想删除共享对象中的某个属性值或者干脆删除整个共享对象解决办法使用delete删除共享对象的data属性中的值,或使用clear( )方法清除整个共享对象讨论删除共享对象中的数据是很简单的,但是要注意方法,在ActionScript中我们经常看到删除对象或数组只要赋值为+展开-ActionScriptnull或undefined即可,但是对于共享对象这样做却不行://试图删除共享对象example的someVariable值//这语句编译通过,但是并不是我们所期望的example.data.someVariable=null;因为共享对象中null和undefined都是有效的值,因此上面
http://www.w3dev.cn/article/20100301/1702.aspx

20.2.创建XML对象

问题我想创建一个XML对象用于存储数据解决办法使用下列方式之一创建XML对象:创建XML对象并直接用XML进行赋值;传递XML字符串给XML构造函数创建一个空的XML对象并使用E4X填充数据创建空的对象,从外部读取XML数据讨论在ActionScript很多地方都会用到XML对象,下面是最简单的方式创建XML对象:+展开-ActionScriptvarexample:XML=abc>a>eh/a>b>bee/b>c>see/c>/abc>;这是E4X表达式的例子,注意等号右边没有引号,ActionScript编译器知道右边的表达式就是XML。上面的XML表达式是静态的,现在看一下如何创建动态的
http://www.w3dev.cn/article/20100301/1724.aspx

8.1.创建BitmapData对象

,transparent和fillColor默认为true和0xFFFFFFFF。fillColor 接受32-bit的颜色值,这意味着它支持alpha通道。当然,相应的BitmapData的transparent属性应为true。否则,所以颜色都是不透明的。下面的例子创建了BitmapData 对象,初始化为透明的带alpha通道,背景色为0:+展开-ActionScriptvarbitmap:BitmapData=newBitmapData(100,100,true,0x00FFFFFF);创建出BitmapData 实例后就存在于内存中了,虽然现在就可以创建内容,不过在没加入到显示列表中
http://www.w3dev.cn/article/20100226/1554.aspx

8.2.添加位图到可视化对象列表

问题我要创建BitmapData 并显示它解决办法使用BitmapData 创建位图,并加入到可视化对象列表。讨论在ActionScript 3.0里要让对象可视,则必须加入到可视化对象列表中才行,然而addChild( ) 方法添加的对象必须是flash.display.DisplayObject的子类才行,而BitmapData 类继承自Object,所以不能直接加到列表中。要加到可视化对象列表中,可使用flash.display.Bitmap类,它是DisplayObject.类的子类,实际上是BitmapData的一个包装类,允许BitmapData可被显示。当用Bitmap构造函数
http://www.w3dev.cn/article/20100226/1555.aspx

8.3.绘制可视化对象到位图上

问题我想把Sprite或其他显示对象上的内容绘制到位图上解决办法用BitmapData类的draw( )方法绘制内容讨论创建好的BitmapData,只是简单的黑色背景。你可能会把在sprite或其他可视化对象上已画好的图形内容画到位图上,用draw( )方法就能做到,你只要把相关对象作为draw( )的参数就可以了,也可以把flash.geom.Matrix类实例作为参数,Matrix类允许你对图形进行缩放,旋转,变换,或倾斜等操作。该参数是可选的,不过你又要使用参数,但又不想做什么,可指定为null。你还可以传递ColorTransform 对象作为参数,它能在绘图前修改颜色,下面的例子画
http://www.w3dev.cn/article/20100226/1556.aspx

第六章.可视化对象列表

6.0.简介6.1.在可视化对象列表中添加项目6.2.从显示列表中删除项目6.3.向前或向后移动对象6.4.创建自定义可视化类6.5.创建简单的按钮6.6.动态载入外部图片6.7.载入外部swf文件并与之交互6.8.接收鼠标事件6.9.用鼠标拖拽对象
http://www.w3dev.cn/article/20100225/1523.aspx

6.1.在可视化对象列表中添加项目

);可视化对象容器能容纳多个子对象,并且管理着对象列表的排列顺序,这个顺序决定这些对象显示在屏幕上的顺序。每个子对象在列表中都有个位置,它用一个整数来索引,这很像数组,位置0代表在列表的底层,它在位置1下绘制,位置1在位置2下绘制,依次类推,如果以前编写过Flash程序,这个深度概念是很容易理解的。当通过addChild( ) 方法添加的对象会显示在最顶层,也就是它得到最大的位置索引值,如果要自己指定位置可使用addChildAt( ) 方法。addChildAt( )方法需要两个参数:要显示的对象,和队列位置。如果指定为0则会显示在最底下,如果指定为某个对象的后面,则它前面的对象都要向前移
http://www.w3dev.cn/article/20100225/1525.aspx

6.3.向前或向后移动对象

问题我要改变对象在屏幕上的显示顺序解决办法使用DisplayObectContainer 类的setChildIndex( ) 方法改变项目的位置,getChildIndex( ) 和getChildAt( ) 方法得到项目在显示列表中的位置讨论6.1 节和6.2 节介绍了可视化对象列表如何处理堆栈顺序( 深度), 基本上每个DisplayObjectContainer 实例都有一个子对象列表,列表中子对象的顺序代表在屏幕上的绘制顺序,每个子对象有个位置索引,范围从0到numChildren -1,这很像数组。位置0的对象绘制在最底层,该列表不会出现空位置,比如三个对象分别在0,1,2 (不会
http://www.w3dev.cn/article/20100225/1527.aspx

6.9.用鼠标拖拽对象

,而且updateAfterEvent( ) 也解决了渲染延时问题。但是在DraggableSprite里dropTarget 属性不能用了,代替它的是getObjectsUnderPoint( ) 方法,返回鼠标位置下面的对象。getObjectsUnderPoint( ) 方法返回一个对象数组,在数组的length-1位置上的对象就是最底层的对象,0位置是最上层的对象,根据这个数组然后检测白色方框是否在内就知道拖动目标是否合法了。下面的代码和以前的基本一致,只不过Sprite换成了DraggableSprite:+展开-ActionScriptpackage{importflash.di
http://www.w3dev.cn/article/20100225/1533.aspx

第二章 Flex 2 应用程序开发入门

和 WebService(通过使用SOAP)。3. Flex Data Services 模式,可以提供更为高级的特性,如数据同步、安全增强等等。Flex Data Services 增强的RPC 服务支持使用AMF 协议去访问RemoteObjects。这样,你就可以访问远程服务器上的Java 对象(JavaBeans,EJBs,POJOs)。同时,Flex DataServices 还提供了一个代理/proxy 以方便对服务器端数据的存取。关于Flex Builder 的界面模式Flex Builder 提供两种界面模式:即开发设计模式、调试模式。你可以在主菜单中的WindowPerspe
http://www.w3dev.cn/article/20100209/1415.aspx

JavaScript精粹(4-2)

包来创建绑定对象与私有成员的关联,在这个例子中,只有deentityify方法有权访问字符映射表这个数据对象。模块模式的一般形式是:一个定义了私有变量和函数的函数,利用闭包创建可以访问私有变量和函数的特权函数;最后返回这个特权函数,或者把它们保存到一个可访问到的地方。使用模块模式就可以摒弃全局变量的使用。它促进了信息隐藏和其他优秀的设计实践。对于应用程序的封装,或者构造其他单例对象(译注:JavaScript的单例就是用定义对象的方法创建对象。它通常作为工具为程序其他部分提供功能支持。),模块模式非常有效。模块模式也可以用来产生安全的对象。假定我们想要构造一个用来产生序列号的对象:+展开-J
http://www.w3dev.cn/article/20100204/1380.aspx

Asp.net的服务器推技术 (Server Push)

teTime.Now.ToString()+")/script"),也就是不断的输出客户端的函数调用,并且做成死循环,这样浏览器和服务器端就形成了一条源源不断的数据传输链接。 那htmlfile是什么呢?这是一个类似Javascript中Window对象的一个ActiveXObject,它内部也是DOM结构,将作为隐藏帧的IFrame写入这个对象中,就可以解决进度条的问题。说的可能比较晦涩,来看实例代码吧: Default.aspx.cs +展开-C#publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(ob
http://www.w3dev.cn/article/20100129/1358.aspx

如何解决ajax跨域的问题

能成功能。感觉可能是我的RP问题。这都不是完美的解决方案,用本地代理才是终极方案!Ajax跨域访问的问题出于安全性考虑,浏览器禁止ajax跨域访问,但当有遇到这一类需求时就直接否则ajax直接访问这一方法。当然方法一定是有的,在网上一搜能找到一堆解决方案,如动态创建iframe获取结果在传回处理的,或者用script的src属性绕过的,还有通过本地代理的,我感觉本地代理方式是一种比较完美的方法,直接通过ajax像本地服务请求,本地服务再向远程服务获取结果,然后传回客户端,当然多了中间一层代理,但过程还是ajax方式的,同时本地的 service可以任意处理出想要的结果。上回说到使用jQuer
http://www.w3dev.cn/article/20100120/1298.aspx

javascript操作JSON

str.parseJSON();alert(obj.toJSONString());} 下面使用prototype写一个JSON的ajax例子。先写一个servlet (我的是servlet.ajax.JSONTest1.java)就写一句话 java 代码response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }"); 再在页面中写一个ajax的请求js 代码+展开-JavaScriptfunctionsendRequest(){varurl="/MyWebApp/JSONT
http://www.w3dev.cn/article/20100119/1292.aspx