11.10.在State Changes事件添加和删除事件监听器

11.10.1. 问题我想给State 创建添加的组件注册事件监听器,当state 改变时移除监听器。11.10.2. 解决办法将事件监听器关联到组件的addedToStage 事件,在removedFromStage 事件移除事件监听器。或者使用SetEventHandler 对象创建事件监听器。11.10.3. 讨论在ActionScript3确保事件处理器能被正确的移除是保证应用程序不会造成消耗Flash Player 大量内存的最好方法。也就是说,添加事件处理器也就伴随着要移除这些事件处理器。例如在组件被添加或移除时也要添加和移除事件处理器:+展开-XMLmx:AddChildr
http://www.w3dev.cn/article/20100329/2037.aspx

9.17.从SWF 文件生成动态皮肤

成不同于,前者的动作由元件帧提供,相反后者则是编程实现组件的动作元素。若要生成待嵌入的动态皮肤,从一个FLA 文件的库使用MovieClip 元件,该FLA 文件帧标签的定义与其状态相关。当你为FLA 库中的元件指定链接属性时,元件随后在类声明被嵌入进去。你然后通过引用类将动态皮肤添加到显示列表,动作效果由基于组件状态阶段的前向帧控制。若要生成动态皮肤,首在Flash IDE 添加一个新的MovieClip 元件,然后添加许多命名了的帧以及帧与帧之间沿时间线的动作,如下图9-3.图9-3. 创建一些命名的帧及其间的动作.只要你喜欢,你的动作当然可以比本例所含的动作复杂得多。重要的
http://www.w3dev.cn/article/20100317/1956.aspx

在FTP服务器软件Serv-U禁止指定IP的访问

用户对服务器的访问。      1 选择指定用户      在使用,如果想禁止用户从指定IP的计算机上登陆访问FTP服务器,应该怎么设置呢?首先我们要搞清楚,在Serv-U禁止指定IP的访问分为两种情况:一种是面向作用域的,也就是说对域中所有用户都有效的规则,在Serv-U选中作用域“hb”-“设置”-“禁止IP访问”,如图1所示。 图一  另外一种情况是面向用户的禁止,就是说在指定IP的计算机上禁止该用户登陆访问FTP服务器,但允许其他用户登陆访问。具体操作可以通过在图1界面选择某一用户即可完成。例如,在Serv-U选中作用域“hb”-“用户”-“hbjd” -“禁止IP访问”。
http://www.w3dev.cn/article/20100314/1951.aspx

事件查看器应用程序日志自动关闭

问题描述:事件查看器中的应用程序日志不显示,只显示事件数量,双击查看后出现系统错误然后关闭。如下图网上查找后发现是应为安装了经过第三方优化过的绿色版serv-U的问题。解决办法就是下载e文版本来重新安装。今天重新找到一个查看“应用程序日志”的方法,就是将应用程序日志另存为文件,然后右键点击左边的导航选择“打开日志文件(O)...”,然后选择刚才另存为的应用程序日志文件,然后为“日志类型”随便选择一种类型后导入事件查看器,在左边会生成一个导航项目,点击此导航项目就可以查看了。
http://www.w3dev.cn/article/20100312/1920.aspx

.netHttpModule,HttpHandler,HttpHandlerFactory简单使用

} }web.config配置:httpHandlersadd verb="*" path="*.aspx" type="HttpHandle.MyHandler, HttpHandle"//httpHandlers这个对象主要就是ProcessRequest方法,在这个方法输出版权信息,但同时也有一个问题:原来的页面不会被处理,也就是说页面只有版权声明了。那么所有的aspx页面都不能正常运行了三、HttpHandlerFactory这个对象也可以用来加入特殊的后缀所对应的处理程序,它的功能比HttpHandler要更加强大,在系统的web.config就是通过注册HttpHand
http://www.w3dev.cn/article/20100312/1921.aspx

8.9.在Flex程序平滑播放视频

8.9.1. 问题我需要在应用程序平滑播放视频。8.9.2. 解决办法创建一个自定义组件包含the flash.media.Video 组件,然后设置视频的平滑属性设置为True 。8.9.3. 讨论要平滑视频,像这样,使视频看起来减少像素化,你需要访问flash.media.Video 对象。视频平滑,就想图像平滑,需要比非平滑播放需要更强的处理能力,可能降低大画面或高清视频的播放速度。Flex VideoDisplay 组件不允许你为它包含的flash.media.Video 对象设置平滑属性。所以你必须创建一个单独的组件,增加了较低级别的FlashVideo 组件,并设置平滑属性:+
http://www.w3dev.cn/article/20100312/1924.aspx

8.12.在多幅图像使用混合模式

8.12.1. 问题我需要混合多个图像。8.12.2. 解决办法设置图像的blendMode 属性。8.12.3. 讨论每一个显示对象定义blendMode 属性,控制显示对象如何出现。控制alpha 和显示列表处于显示对象在下方的对象如何透过组件显示。任何使用过Adobe Photoshop 或After Effects的人都熟悉混合模式:BlendMode.ADD ("add")在两个图像之间创建一个动画的光线融合效果。BlendMode.ALPHA ("alpha")前台到后台适用的透明度。BlendMode.DARKEN ("darken")超级加强效果BlendMode.DIFF
http://www.w3dev.cn/article/20100312/1927.aspx

9.1.用CSS定义组件样式

cation编译时逐项指定的样式属性值不会受到用mx:Style 标签局部定义的CSS 的限制, 正如上述例子。逐项定义的样式属性值会在运行和编译时重写掉外部加载的样式文件定义的样式。你会注意到本例嵌入的fontSize 属性是直接连接的,然而在CSS 声明中的style 属性则带有连字符. 带有连字符的的声明符合CSS 管理, 并且可用来在外部样式表单利用mx:Style 标签声明样式属性。MXML 嵌入声明的样式属性利用驼峰样式符合ActionScript 标准,该标准不支持连字符. 内部机制, CSS 中带连字符的样式声明被转换成驼峰样式并用来利用getStyle 方法检索可用的
http://www.w3dev.cn/article/20100312/1935.aspx

9.3.嵌入CSS样式

9.3.1.问题你想在你的程序利用CSS 为组件嵌入使用样式。9.3.2.解决办法在本地定义定义样式,或者利用mx:Style标签的source 属性从外部文件嵌入使用CSS规则。9.3.3.讨论样式可以在编译时通过多种方式嵌入进你的Flex 程序。这一诀窍讲述利用CSS 语法定义嵌入在你程序中的样式。在Flex 运用CSS,你可以做到以下内容:? 在MXML 文件的mx:Style标签内声明本地样式。? 设置mx:Style 标签的source 属性为外部样式表单。下面的例子在主程序内局部声明两个类样式,这些样式应用于程序显示的Label 实例:+展开-XMLmx:Applicati
http://www.w3dev.cn/article/20100312/1937.aspx

9.6.运行时加载CSS

步创作以.css 结尾的文件并添加如下声明:+展开-CSSVBox{backgroundColor:#CCCCCC;verticalAlign:'middle';horizontalAlign:'center';}.header{font-family:'Arial';font-size:15px;font-weight:'bold';color:#FFFFFF;}将CSS 文件保存为MyStyles.css,打开一个命令提示符。在你的系统路径Flex 安装目录/bin 文件夹下, 提示符后输入以下命令后点击回车: mxmlc MyStyles.css本命令将创造出与提供的CSS 文件同名
http://www.w3dev.cn/article/20100312/1940.aspx

9.9.同一个程序使用多个主题

9.9.1.问题你想在同一程序利用多个主题颜色以区分控件。9.9.2.解决办法运用容器的themeColor 属性来规定相应的彩色值。9.9.3.讨论你能利用mx:Canvas的themeColor 属性在同一程序为控件指派不止一个Flex 主题。运用主题颜色可以改变在滚动、选择等相似的视图处理时被操作控件的外观。本招的例子向mx:Canvas 窗口添加三个子组件来显示三个主题的外貌。Flex 程序的默认主题颜色在框架defaults.css 的全局样式声明中被设为haloBlue, 但是还有很多可用只要你喜欢就可用。首先创造数据提供器dp,允许其可绑定。其次声明三个包含了themeC
http://www.w3dev.cn/article/20100312/1943.aspx

9.12.从SWF文件嵌入字体

9.12.1.问题你想从SWF 文件嵌入字体,并将其应用在你的程序。9.12.2.解决办法生成一个嵌有字体的SWF ,然后利用@font-face 指令声明你想在程序嵌入的打印机字体。9.12.3.讨论你能从单个包含嵌入字体的SWF 文件为你的程序嵌入多种打印机字体样式。与从字体文件嵌入字体相反,从SWF 嵌入的方法具有可携带性的优势。你能将你系统可用的字体嵌入进SWF 文件,然后传给其他开发人员,他们不再需要担心编译时是否内在地包含相应的字体。想要在SWF 文件嵌入字体,首先在Flash IDE 生成新的FLA 文件,然后向舞台添加带有指定的打印机字体集的动态文本域,并选
http://www.w3dev.cn/article/20100312/1946.aspx

9.14.从SWF文件嵌入皮肤

从高级功能,你可以选择嵌入的属性(也可从链接面板访问)同时有机会利用选择允许使用9 切片缩放向导在元件显示可拖拽的9 切片缩放网格线。如果你手动地设置元件的scale-9 guides ,Flex 编译器自动地设置缩放网格属性(scaleGridLeft, scaleGridRight,scaleGridTop, scaleGridBottom)的样式值。图9-2.在SWF文件生成并导出矢量图像生成这些皮肤,并且给每个皮肤唯一的链接标识符同时勾选输出,以一个适合你项目的名称(本例中名称为scrollbar_skins.fla)保存FLA 文件,然后发布剪辑。从SWF 文件嵌入图像元
http://www.w3dev.cn/article/20100312/1948.aspx

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

5.7.1问题为Tree 控件传递复杂数据,并使用Tree 适当地解析它们5.7.2解决方法在一个类实现ITreeDataDescriptor 接口,并该类的新数据描述符设置一个示例对象给Tree dataDescriptor 属性,5.7.3讨论使用一个对象和Tree 一起,将对象传递给Tree 来实现ITreeDataDescriptor 以解析数据并返回与数据中的对像关系相关的正确信息,XML 数据很容易将自己达到这个目的,但是复杂数据对象可以和为Tree 定义关系的对象一起被适当的使用.下面的这个例子, ComplexDataType,是一个典型的复杂数据类型:+展开-Actio
http://www.w3dev.cn/article/20100311/1877.aspx

5.10.跟踪TileList所有被选中的子节点

5.10.1.问题为TileList 的渲染器设置一个切换,并跟踪TileList 所有被选中的子节点5.10.2.解决方法扩展TileList 组件并创建一个类似itemRenderer 用法的定制渲染器,对于渲染器中的切换事件,在事件发布唯一的标识符uid 到TileList 并保存所有IDs 到一个数组。5.10.3.讨论对于所有itemRenderers,当它们的listData 属性被设置了,可以访问它们的父级ListBase组件。当一个渲染器实现IDropInListItemRenderer,它的实现方法get 和set listData,一个BaseListData 对象。
http://www.w3dev.cn/article/20100311/1880.aspx

6.10.在DataGrid搜索并自动滚屏到匹配项

6.10.1. 问题我想搜索DataGrid 中的数据项并滚屏到匹配项6.10.2. 解决办法在ArrayCollection 使用IViewCursor 的findFirst 方法。使用DataGrid 的scrollToIndex 进行滚屏。6.10.3. 讨论这项技术的关键之处在于DataGrid 和一个简单的表达,提供用户在文本框输入city 名称,然后点击按钮开始搜索。当用户点击按钮(search_btn)后,DataGrid 的dataProvider 被搜索,相应的行被选择,如果所在行没显示的话滚屏到所在视图。该解决方案的两个主要方面是查找匹配项和定位DataGrid 的相应
http://www.w3dev.cn/article/20100311/1894.aspx

7.13.改变List 渲染器的大小

nderer 不会被设置state,所以下边的两个Label 不会再次显示。可是,如果这时候我再拖动滚动条,使这个item 移动显示区,这时这个renderer 的监听方法生效了,它会满足第一个if 条件,运行第一个effect。这里大家可能会有些不明白,大家可能会认为:虽然if 第一个条件能满足,但第二个条件currentState 一定是等于selected,因为它就是在被选中状态,这样就使整个if 条件不满足。但事实不是这样的,我们回过头来再看,当这个renderer 移出显示区时,这个renderer 就被其它item 重用了,但是重用时并没有改变renderer 的curren
http://www.w3dev.cn/article/20100311/1910.aspx

4.13.在HTML应用嵌入字体

式应用在一个span 上。然而,嵌入字体要求HTML 中的font 标签必须应用应用嵌入字体。font size="20" family="DIN"Using the new font/font这个font 标签通过将fontFamily 属性插入到mx:Style标签中的font-face 声明来使用。@font-face{src:url("../assets/DIN-BLAC.ttf");fontFamily:DIN;advancedAntiAliasing: true;}下面是完整的例子:+展开-XMLmx:Applicationxmlns:mx="http://www.adobe.
http://www.w3dev.cn/article/20100310/1864.aspx

4.15.找出一个TextArea 最后显示的字符

时使用TextLineMetrics 对象来返回。TextLineMetrics 定义了一行文本的多个属性:高度,宽度,基线和行间距。图4-1 描述了TextLineMetrics 对象定义的属性。图4-1. TextLineMetrics对象的属性下面的例子使用了高度属性来找出TextArea 最后显示的行。首先,使用getBounds 方法取回一个关于可视TextArea 的宽高xy 值得矩形。然后使用TextLineMetrics 对象取得最后一个可视行,然后添加它。最后,使用getLineOffset 方法获取这一行的最后一个字符,getLineOffset 可以取得一行的第一个字
http://www.w3dev.cn/article/20100310/1866.aspx

3.4.在容器动态添加和移除子组件

oveChildAt 或者removeAllChildren 方法来移除子组件。3.4.3 讨论Flex 方法使得添加和移除子组件操作变得容易,但是UIComponent 控件和容器则遵从稍显不同的两组规则。addChild 方法将任何继承自UIComponent 的子组件添加到调用这个方法的控件。例如:+展开-ActionScriptvarcomponent:UIComponent=newUIComponent();addChild(component);addChildAt 方法的不同在于,它在子组件被添加到容器的时候需要传入一个该子组件在目标容器内的索引。在容器没有布局管理器的情况下
http://www.w3dev.cn/article/20100305/1815.aspx

3.22.在容器滚动到某个指定的子组件

行为,同时控制滚动通过单独的控件。3.22.2 解决办法根据需要滚动到的子组件的索引,使用getChildAt 方法获取滚动时经过的所有子组件,并计算滚动经过的这些子组件的高度之和。然后使用计算得到的值来设置容器的verticalScrollPosition 属性值。3.22.3 讨论在下面的例子,包含子组件的Vbox 将verticalScrollPolicy 属性设置为off,并且将一个事件侦听绑定到ComboBox 的change 属性上。当触发change 事件的时候,函数循环遍历所有VBox 的子组件,知道找出需要的那个子组件,求和。然后把这个和设置到Vbox 的vertical
http://www.w3dev.cn/article/20100305/1833.aspx

1.4.在Flex Builder设置MXML编译器选项

些常见的编译器参数:verbose-stacktraces指定SWF在运行时异常信息包含行号和文件名,这将使产生的SWF文件更大些,带verbose-stacktraces的SWF还是和调试版本的SWF有区别的。source-path path-element添加其他源代码目录或文件,可以使用通配符来添加目录所有文件或子目录,也可使用+= 在默认路径上来追加新参数,例如-source-path+=/Users/base/Projectinclude-libraries指定SWF文件被编译到程序并链接库所有类和资源到SWF上。如果你的程序需要加载其他模块这个参数就很有用了。librar
http://www.w3dev.cn/article/20100304/1780.aspx

1.6.在MXML添加事件监听器

les指示事件是否是冒泡事件,即是否从已接收任何侦听器进一步沿事件链向上重新发送该事件对象。cancelable指示该事件是否是可取消的。currentTarget处于活动进程的事件对象。eventPhase事件流的当前阶段Target事件目标,即发出该事件的对象Type事件类型你也可以在MXML通过绑定标签{}直接写入事件处理语句。+展开 -XMLmx:Buttonclick="{textComponent.text='Youclickedthebutton'"label="ClickMe"/mx:Textid="textComponent"/当编译这段代码时,编译器会创建一个函数,设置
http://www.w3dev.cn/article/20100304/1782.aspx

1.9.在ActionScript设置变量的作用域

Script或在MXML文件,变量都有各种作用域。组件中的私有变量和方法只可被其自身所访问,其他组件都无法访问。这样的定义很有用,这些数据只能有一个组件可以修改。当你设计一个复杂类时,最好是把那些外部组件不需要的变量属性设置为私有。公共变量对任何对象都是可见的。应仔细考虑哪些属性是需要被外部访问以及如何限制访问这些属性以便创建一个更好的类结构,要时刻提醒程序员注意这一特性的重要性。对于继承类来说私有属性也是不可见的,只有定义它的类或组件才可见。最后protected变量只被定义它的类及其继承类所访问。标记为私有的变量和函数只在定义它的类可见,保护的在任何派生类可见,如下面的例子使用了pr
http://www.w3dev.cn/article/20100304/1786.aspx

1.10.在ActionScript创建组件

+展开-ActionScriptpublicfunctionretrievePerson():Person{/*dosomespecialemployeeprocessing*/returnnull;}}}要想把这个类添加到其他组件,可使用下面的ActionScript代码:+展开-ActionScriptvarrenderer:PersonRenderer=newPersonRenderer();addChild(renderer);或者在MXML:+展开-XMLrenderers:PersonRendererid="renderer"/在ActionScript构造函数是显式调用。
http://www.w3dev.cn/article/20100304/1787.aspx

如何将制作好的html页面导入foxmail的模版

l并没有将html页面源代码作为邮件内容的功能,只好到网上查找,也找到一些不着边的内容,结果去Foxmail文件夹内找到Foxmail的模板是html格式的页面,自己想应该可以把制作好的页面作为Foxmail的模板吧。结果可以,步骤如下第一步,将制作好的html页面拷贝到Foxmail的模板文件夹。C:\Program Files\Foxmail\Template\New,注意要放到Template目录下的任意一个文件夹内容内,放到Template下视乎要配置下Foxmail才行,要不不在模板列表内出现。第二步,如果html后缀不为.htm,将html后缀改为.htm即可。注意,是.htm
http://www.w3dev.cn/article/20100302/1769.aspx

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

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

19.2.从服务端脚本读取变量

问题我想从服务端脚本(ColdFusion, Perl, PHP, etc.)读取变量.解决办法使用URLLoader.load( )方法和DataFormat.VARIABLES 读取由服务端脚本产生的URL-编码数据讨论ActionScript读取服务端脚本数据和读取文本文件的操作是一样的,当这些数据是从服务端数据库或其他资源产生时,脚本必须输出为URL-编码的数据才行,如果你采用perl脚本,输出为URL-编码,就不需要其他任何调整了,看下面的例子:#!/usr/bin/perl# In a more practical example this value would be re
http://www.w3dev.cn/article/20100301/1715.aspx