2009年2月19日星期四
actionscript 2.0 (this)
this 关键字的范围
this 关键字引用当前正在执行的范围中的对象。this 可能会引用不同的对象,这取决于使用的是哪一种事件处理函数机制。
在事件处理函数或事件侦听器函数内,this 引用定义该事件处理函数或事件侦听器方法的对象。例如,在下面的代码中,this 引用 my_mc:
// 附加到主时间轴的 onPress() 事件处理函数:
my_mc.onPress = function () {
trace(this); // _level0.my_mc
}
在附加到影片剪辑的 on() 处理函数内,this 引用 on() 处理函数所附加到的那个影片剪辑,如以下代码所示:
// 已附加到主时间轴上名为 my_mc 的影片剪辑
on (press) {
trace(this); // _level0.my_mc
}
在附加到按钮的 on() 处理函数内,this 引用包含该按钮的时间轴,如以下代码所示:
// 已附加到主时间轴上的按钮
on (press) {
trace(this); // _level0
}
this 关键字引用当前正在执行的范围中的对象。this 可能会引用不同的对象,这取决于使用的是哪一种事件处理函数机制。
在事件处理函数或事件侦听器函数内,this 引用定义该事件处理函数或事件侦听器方法的对象。例如,在下面的代码中,this 引用 my_mc:
// 附加到主时间轴的 onPress() 事件处理函数:
my_mc.onPress = function () {
trace(this); // _level0.my_mc
}
在附加到影片剪辑的 on() 处理函数内,this 引用 on() 处理函数所附加到的那个影片剪辑,如以下代码所示:
// 已附加到主时间轴上名为 my_mc 的影片剪辑
on (press) {
trace(this); // _level0.my_mc
}
在附加到按钮的 on() 处理函数内,this 引用包含该按钮的时间轴,如以下代码所示:
// 已附加到主时间轴上的按钮
on (press) {
trace(this); // _level0
}
ActionScript 2.0 (接口)
接口是一个文档,使用它可以声明(但不是定义)必须出现在类中的方法。
接口名称的第一个字母为大写,这与类名称相同。接口名称通常是形容词,如 Printable。下面的接口名称 IEmployeeRecords 使用大写的首字母和混合大小写的连接单词:
interface IEmployeeRecords {}
注意
有些开发人员使用大写"I"开头的接口名称以便将接口名称与类名称区分开来。这是一种好的做法,它让您可以快速区分接口和常规类。
创建接口的过程与创建类相同。与类相同,只能在外部 ActionScript 文件中定义接口。创建接口的工作流程至少包括以下步骤:
在外部 ActionScript 类文件中定义一个接口。
将接口文件保存到指定的类路径目录(Flash 查找类的位置)中或保存在应用程序的 FLA 文件所在的目录中
在另一个脚本中创建类的一个实例(既可以是在一个 Flash (FLA) 文档中,也可以是在一个外部脚本文件中),或基于原始接口创建一个子接口
在外部脚本文件中创建一个实现接口的类
接口的声明使用 interface 关键字,后跟接口名,再后面是一对用来定义接口体的花括号 ({}),如下例所示:
interface IEmployeeRecords {
// 接口方法声明
}
接口只能包含方法(函数)声明,包括参数、参数类型和函数返回类型。
接口名称的第一个字母为大写,这与类名称相同。接口名称通常是形容词,如 Printable。下面的接口名称 IEmployeeRecords 使用大写的首字母和混合大小写的连接单词:
interface IEmployeeRecords {}
注意
有些开发人员使用大写"I"开头的接口名称以便将接口名称与类名称区分开来。这是一种好的做法,它让您可以快速区分接口和常规类。
创建接口的过程与创建类相同。与类相同,只能在外部 ActionScript 文件中定义接口。创建接口的工作流程至少包括以下步骤:
在外部 ActionScript 类文件中定义一个接口。
将接口文件保存到指定的类路径目录(Flash 查找类的位置)中或保存在应用程序的 FLA 文件所在的目录中
在另一个脚本中创建类的一个实例(既可以是在一个 Flash (FLA) 文档中,也可以是在一个外部脚本文件中),或基于原始接口创建一个子接口
在外部脚本文件中创建一个实现接口的类
接口的声明使用 interface 关键字,后跟接口名,再后面是一对用来定义接口体的花括号 ({}),如下例所示:
interface IEmployeeRecords {
// 接口方法声明
}
接口只能包含方法(函数)声明,包括参数、参数类型和函数返回类型。
actionscript2.0(类)
1.一个类定义了可区分一系列对象的所有属性
Flash 包含大约 65 个顶级类和内置类,它们提供了基本(或者称"原始")数据类型(Array、Boolean、Date 等)、自定义错误和事件,以及几种加载外部内容(XML、图像、原始二进制数据等)的方法。
2.包
创建类时,可将 ActionScript 类文件组织到包 中。包是一个位于指定的类路径目录下的目录,其中包含一个或多个类文件.包也可以包含其它的包(称为子包),每个子包都可以具有自己的类文件。
与变量一样,包名必须是标识符;也就是说,第一个字符必须是字母、下划线 (_) 或美元符号 ($),并且后面的每个字符可以是字母、数字、下划线或美元符号。包命名有一些首选方法,例如,建议避免使用下划线或美元符号字符。有关包命名的详细信息,请参阅"命名包"。
包通常用于将相关的类整理在一起。例如,您可能有三个分别在 Square.as、Circle.as 和 Triangle.as 中定义的相关类 Square、Circle 和 Triangle。假定您已经将这些 ActionScript 文件保存到了类路径中指定的某个目录下,如下例所示:
// 在 Square.as 中:
class Square {}
// 在 Circle.as 中:
class Circle {}
// 在 Triangle.as 中:
class Triangle {}
由于这三个类文件是相关的,因此您可能会决定将它们放入一个名为 Shapes 的包(目录)中。在这种情况下,全限定类名将包括包路径和简单类名。包路径用点 (.) 语法表示,其中每个点表示一个子目录。
例如,如果将各个定义形状的 ActionScript 文件放在了 Shapes 目录下,则需要更改各个类文件的名称,以反映其新位置,如下所示:
// 在 Shapes/Square.as 中:
class Shapes.Square {}
// 在 Shapes/Circle.as 中:
class Shapes.Circle {}
// 在 Shapes/Triangle.as 中:
class Shapes.Triangle {}
3.类的应用
若要引用位于包目录中的类,可以指定其全限定类名,或使用 import 语句导入该包
import com.adobe.utils.*;
var a:ClassA = new ClassA(); // ClassA 构造函数
a.doSomething(); // 调用 ClassA 的 doSomething() 方法
var b:ClassB = new ClassB(); // ClassB 构造函数
b.doSomething(); // 调用 ClassB 的 doSomething() 方法
4.顶级类
注意
CustomActions 和 XMLUI 类只能在 Flash 创作环境中使用。
类
说明
Accessibility
Accessibility 类管理 SWF 文件与屏幕读取应用程序之间的通讯。将此类的方法与全局 _accProps 属性结合使用,可以在运行时控制影片剪辑、按钮和文本字段的可访问属性。请参阅 Accessibility。
Array
Array 类表示 ActionScript 中的数组,并且所有数组对象都是该类的实例。Array 类提供用于处理数组对象的方法和属性。请参阅 Array。
AsBroadcaster
提供可以添加到其它对象中的事件通知和侦听器管理功能。请参阅 AsBroadcaster。
Boolean
Boolean 类是布尔值(true 或 false)的包装。请参阅 Boolean。>
Button
Button 类提供用于处理按钮的方法、属性和事件处理函数。请参阅 Button。请注意,内置 Button 类与 Button 组件类不同,而与第 2 版组件 Button 关联。
Camera
Camera 类用于访问用户的摄像头(如果安装了此设备)。与 Flash Media Server 一起使用时,SWF 文件可以捕获、广播和录制来自用户摄像头的图像和视频。请参阅 Camera。
Color
通过 Color 类,您可以设置影片剪辑实例的 RGB 颜色值和颜色转换,并可以在设置后检索这些值。Color 类在 Flash Player 8 中已不推荐使用,应转而使用 ColorTransform 类。有关颜色转换的信息,请参阅 ColorTransform (flash.geom.ColorTransform)。
ContextMenu
ContextMenu 类可用于在运行时控制 Flash Player 上下文菜单的内容。可以将单独的 ContextMenu 对象与 MovieClip、Button 或 TextField 对象相关联(使用这些类的 menu 属性)。还可以通过使用 ContextMenuItem 类向 ContextMenu 对象中添加自定义菜单项。请参阅 ContextMenu。
ContextMenuItem
ContextMenuItem 类可用于创建出现在 Flash Player 上下文菜单中的新菜单项。通过 ContextMenu 类可将使用此类创建的新菜单项添加到 Flash Player 上下文菜单中。请参阅 ContextMenuItem。
CustomActions
CustomActions 类可用于管理向创作工具注册的任何自定义动作。请参阅 CustomActions。
Date
Date 类展示如何在 ActionScript 中表示日期和时间,它支持处理日期和时间的操作。Date 类还提供了从操作系统中获取当前日期和时间的方法。请参阅 Date。
Error
Error 类包含关于脚本中出现的运行时错误的信息。通常使用 throw 语句来生成错误条件,然后可以使用 try..catch..finally 语句来处理该错误条件。请参阅 Error。
Function
Function 类是所有 ActionScript 函数(包括 ActionScript 固有的函数和您定义的函数)的类表示形式。请参阅 Function。
Key
Key 类提供用于获取有关键盘和按键信息的方法和属性。请参阅 Key。
LoadVars
LoadVars 类允许您在 SWF 文件与服务器之间以名称/值对的形式传输变量。请参阅 LoadVars。
LocalConnection
LocalConnection 类用于开发 SWF 文件,这些文件无需使用 fscommand() 方法或 JavaScript 即可相互发送指令。请参阅 LocalConnection。
Math
使用 Math 类能方便地访问常见的数学常数,该类还提供了多个常用的数学函数。Math 类的所有属性和方法都是静态的,必须使用以下语法来调用:Math.method(parameter) 或 Math.constant。请参阅 Math。
Microphone
Microphone 类用于访问用户的麦克风(如果安装了此设备)。与 Flash Media Server 一起使用时,SWF 文件可以广播和录制来自用户麦克风的音频。请参阅 Microphone。
Mouse
Mouse 类在 SWF 文件中提供对鼠标的控制(例如,此类可用于隐藏或显示鼠标指针)。请参阅 Mouse。
MovieClip
SWF 文件中的每个影片剪辑均是 MovieClip 类的一个实例。您可以使用此类的方法和属性控制影片剪辑对象。请参阅 MovieClip。
MovieClipLoader
此类用于实现在 SWF、JPEG、GIF 和 PNG 文件加载到影片剪辑实例中时提供状态信息的侦听器回调。请参阅 MovieClipLoader。
NetConnection
NetConnection 可建立本地流连接,以便从 HTTP 地址或本地文件系统播放 Flash 视频 (FLV) 文件。请参阅 NetConnection。
NetStream
NetStream 类控制来自本地文件系统或 HTTP 地址的 FLV 文件的回放。请参阅 NetStream。
Number
Number 类是原始数字数据类型的包装。请参阅 Number。
Object
Object 类位于 ActionScript 类层次结构的根部;其它所有类均继承其方法和属性。请参阅 Object。
PrintJob
PrintJob 类可用于打印 SWF 文件的内容,包括动态呈现的内容和多页文档。请参阅 PrintJob。
Selection
利用 Selection 类可以设置和控制插入点所在的文本字段(具有焦点的文本字段)。请参阅 Selection。
SharedObject
SharedObject 类在客户端计算机上提供了永久的本地数据存储(类似于 Cookie)。此类提供了客户端计算机上对象之间的实时数据共享。请参阅 SharedObject。
Sound
Sound 类提供对 SWF 文件中的声音的控制。请参阅 Sound。
Stage
Stage 类提供有关 SWF 文件的尺寸、对齐方式和缩放模式的信息。它还报告调整舞台大小的事件。请参阅 Stage。
String
String 类是字符串原始数据类型的包装,它使您能够使用 String 对象的方法和属性处理原始字符串值类型。请参阅 String。
System
System 类提供有关 Flash Player 和运行 Flash Player 的系统的信息(例如,屏幕分辨率和当前系统语言)。它还可用于显示或隐藏 Flash Player 设置面板和修改 SWF 文件的安全设置。请参阅 System。
TextField
TextField 类提供对动态和输入文本字段的控制,例如检索格式信息、调用事件处理函数和更改属性(如 Alpha 或背景颜色)。请参阅 TextField。
TextFormat
TextFormat 类可用于将格式样式应用于 TextField 对象中的字符或段落。请参阅 TextFormat。
TextSnapshot
TextSnapshot 对象用于访问和布置影片剪辑中的静态文本。请参阅 TextSnapshot。
Video
Video 类用于显示 SWF 文件中的视频对象。可将此类用于 Flash Media Server 以显示 SWF 文件中的实时视频流,或者用于 Flash 中以播放 Flash 视频 (FLV) 文件。请参阅 Video。
XML
此类提供用于处理 XML 对象的方法和属性。请参阅 XML。
XMLNode
XMLNode 类表示 XML 文档树中的单个节点。它是 XML 类的超类。请参阅 XMLNode。
XMLSocket
XMLSocket 类可用于在服务器计算机与运行 Flash Player 的客户端之间建立永久套接字连接。客户端套接字实现了等待时间较短的数据传输,例如,实时聊天应用程序所需的快速数据传输。请参阅 XMLSocket。
XMLUI
XMLUI 对象实现与用作 Flash 创作工具扩展功能(如"行为"、"命令"、"效果"和"工具")的自定义用户界面的 SWF 文件的通信。请参阅 XMLUI。
5.内置包
一.flash.display 包中包含可用于构建可视显示内容的 BitmapData 类。BitmapData 类可用于在文档中创建可任意调整大小的透明或不透明位图图像,并且可以在运行时以各种方式对它们进行处理。
二.flash.external 包可用来与使用 ActionScript 代码的 Flash Player 容器进行通信.ExternalInterface 类是外部 API,它是一个子系统,帮助实现 ActionScript 与 Flash Player 容器(如使用 JavaScript 的 HTML 页)或使用 Flash Player 的台式机应用程序之间的通信。
三.flash.filters 包中包含用于 Flash Player 8 中的位图滤镜效果的类。滤镜可用来为 Image 和 MovieClip 实例实现丰富的视觉效果(如模糊、斜角、发光和投影)。
四.flash.geom 包中包含 geometry 类,如点、矩形和转换矩阵。这些类支持 BitmapData 类和位图缓存功能。
五.flash.net 包中包含一些类,这些类可用来在用户的计算机与服务器之间上传和下载一个或多个文件.
六.flash.text 包中包含 TextRenderer 类,通过该类可在 Flash Player 8 中使用高级消除锯齿功能。
七.mx.lang 包中包含 Locale 类,通过该类可使用多语言文本。
八.System 包中包含 capabilities、IME 和 security 类。这些类可以处理可能会影响 Flash Player 中的应用程序的设置。TextField 包中包含 StyleSheet 类,可以使用该类将 CSS 样式应用于文本。
Flash 包含大约 65 个顶级类和内置类,它们提供了基本(或者称"原始")数据类型(Array、Boolean、Date 等)、自定义错误和事件,以及几种加载外部内容(XML、图像、原始二进制数据等)的方法。
2.包
创建类时,可将 ActionScript 类文件组织到包 中。包是一个位于指定的类路径目录下的目录,其中包含一个或多个类文件.包也可以包含其它的包(称为子包),每个子包都可以具有自己的类文件。
与变量一样,包名必须是标识符;也就是说,第一个字符必须是字母、下划线 (_) 或美元符号 ($),并且后面的每个字符可以是字母、数字、下划线或美元符号。包命名有一些首选方法,例如,建议避免使用下划线或美元符号字符。有关包命名的详细信息,请参阅"命名包"。
包通常用于将相关的类整理在一起。例如,您可能有三个分别在 Square.as、Circle.as 和 Triangle.as 中定义的相关类 Square、Circle 和 Triangle。假定您已经将这些 ActionScript 文件保存到了类路径中指定的某个目录下,如下例所示:
// 在 Square.as 中:
class Square {}
// 在 Circle.as 中:
class Circle {}
// 在 Triangle.as 中:
class Triangle {}
由于这三个类文件是相关的,因此您可能会决定将它们放入一个名为 Shapes 的包(目录)中。在这种情况下,全限定类名将包括包路径和简单类名。包路径用点 (.) 语法表示,其中每个点表示一个子目录。
例如,如果将各个定义形状的 ActionScript 文件放在了 Shapes 目录下,则需要更改各个类文件的名称,以反映其新位置,如下所示:
// 在 Shapes/Square.as 中:
class Shapes.Square {}
// 在 Shapes/Circle.as 中:
class Shapes.Circle {}
// 在 Shapes/Triangle.as 中:
class Shapes.Triangle {}
3.类的应用
若要引用位于包目录中的类,可以指定其全限定类名,或使用 import 语句导入该包
import com.adobe.utils.*;
var a:ClassA = new ClassA(); // ClassA 构造函数
a.doSomething(); // 调用 ClassA 的 doSomething() 方法
var b:ClassB = new ClassB(); // ClassB 构造函数
b.doSomething(); // 调用 ClassB 的 doSomething() 方法
4.顶级类
注意
CustomActions 和 XMLUI 类只能在 Flash 创作环境中使用。
类
说明
Accessibility
Accessibility 类管理 SWF 文件与屏幕读取应用程序之间的通讯。将此类的方法与全局 _accProps 属性结合使用,可以在运行时控制影片剪辑、按钮和文本字段的可访问属性。请参阅 Accessibility。
Array
Array 类表示 ActionScript 中的数组,并且所有数组对象都是该类的实例。Array 类提供用于处理数组对象的方法和属性。请参阅 Array。
AsBroadcaster
提供可以添加到其它对象中的事件通知和侦听器管理功能。请参阅 AsBroadcaster。
Boolean
Boolean 类是布尔值(true 或 false)的包装。请参阅 Boolean。>
Button
Button 类提供用于处理按钮的方法、属性和事件处理函数。请参阅 Button。请注意,内置 Button 类与 Button 组件类不同,而与第 2 版组件 Button 关联。
Camera
Camera 类用于访问用户的摄像头(如果安装了此设备)。与 Flash Media Server 一起使用时,SWF 文件可以捕获、广播和录制来自用户摄像头的图像和视频。请参阅 Camera。
Color
通过 Color 类,您可以设置影片剪辑实例的 RGB 颜色值和颜色转换,并可以在设置后检索这些值。Color 类在 Flash Player 8 中已不推荐使用,应转而使用 ColorTransform 类。有关颜色转换的信息,请参阅 ColorTransform (flash.geom.ColorTransform)。
ContextMenu
ContextMenu 类可用于在运行时控制 Flash Player 上下文菜单的内容。可以将单独的 ContextMenu 对象与 MovieClip、Button 或 TextField 对象相关联(使用这些类的 menu 属性)。还可以通过使用 ContextMenuItem 类向 ContextMenu 对象中添加自定义菜单项。请参阅 ContextMenu。
ContextMenuItem
ContextMenuItem 类可用于创建出现在 Flash Player 上下文菜单中的新菜单项。通过 ContextMenu 类可将使用此类创建的新菜单项添加到 Flash Player 上下文菜单中。请参阅 ContextMenuItem。
CustomActions
CustomActions 类可用于管理向创作工具注册的任何自定义动作。请参阅 CustomActions。
Date
Date 类展示如何在 ActionScript 中表示日期和时间,它支持处理日期和时间的操作。Date 类还提供了从操作系统中获取当前日期和时间的方法。请参阅 Date。
Error
Error 类包含关于脚本中出现的运行时错误的信息。通常使用 throw 语句来生成错误条件,然后可以使用 try..catch..finally 语句来处理该错误条件。请参阅 Error。
Function
Function 类是所有 ActionScript 函数(包括 ActionScript 固有的函数和您定义的函数)的类表示形式。请参阅 Function。
Key
Key 类提供用于获取有关键盘和按键信息的方法和属性。请参阅 Key。
LoadVars
LoadVars 类允许您在 SWF 文件与服务器之间以名称/值对的形式传输变量。请参阅 LoadVars。
LocalConnection
LocalConnection 类用于开发 SWF 文件,这些文件无需使用 fscommand() 方法或 JavaScript 即可相互发送指令。请参阅 LocalConnection。
Math
使用 Math 类能方便地访问常见的数学常数,该类还提供了多个常用的数学函数。Math 类的所有属性和方法都是静态的,必须使用以下语法来调用:Math.method(parameter) 或 Math.constant。请参阅 Math。
Microphone
Microphone 类用于访问用户的麦克风(如果安装了此设备)。与 Flash Media Server 一起使用时,SWF 文件可以广播和录制来自用户麦克风的音频。请参阅 Microphone。
Mouse
Mouse 类在 SWF 文件中提供对鼠标的控制(例如,此类可用于隐藏或显示鼠标指针)。请参阅 Mouse。
MovieClip
SWF 文件中的每个影片剪辑均是 MovieClip 类的一个实例。您可以使用此类的方法和属性控制影片剪辑对象。请参阅 MovieClip。
MovieClipLoader
此类用于实现在 SWF、JPEG、GIF 和 PNG 文件加载到影片剪辑实例中时提供状态信息的侦听器回调。请参阅 MovieClipLoader。
NetConnection
NetConnection 可建立本地流连接,以便从 HTTP 地址或本地文件系统播放 Flash 视频 (FLV) 文件。请参阅 NetConnection。
NetStream
NetStream 类控制来自本地文件系统或 HTTP 地址的 FLV 文件的回放。请参阅 NetStream。
Number
Number 类是原始数字数据类型的包装。请参阅 Number。
Object
Object 类位于 ActionScript 类层次结构的根部;其它所有类均继承其方法和属性。请参阅 Object。
PrintJob
PrintJob 类可用于打印 SWF 文件的内容,包括动态呈现的内容和多页文档。请参阅 PrintJob。
Selection
利用 Selection 类可以设置和控制插入点所在的文本字段(具有焦点的文本字段)。请参阅 Selection。
SharedObject
SharedObject 类在客户端计算机上提供了永久的本地数据存储(类似于 Cookie)。此类提供了客户端计算机上对象之间的实时数据共享。请参阅 SharedObject。
Sound
Sound 类提供对 SWF 文件中的声音的控制。请参阅 Sound。
Stage
Stage 类提供有关 SWF 文件的尺寸、对齐方式和缩放模式的信息。它还报告调整舞台大小的事件。请参阅 Stage。
String
String 类是字符串原始数据类型的包装,它使您能够使用 String 对象的方法和属性处理原始字符串值类型。请参阅 String。
System
System 类提供有关 Flash Player 和运行 Flash Player 的系统的信息(例如,屏幕分辨率和当前系统语言)。它还可用于显示或隐藏 Flash Player 设置面板和修改 SWF 文件的安全设置。请参阅 System。
TextField
TextField 类提供对动态和输入文本字段的控制,例如检索格式信息、调用事件处理函数和更改属性(如 Alpha 或背景颜色)。请参阅 TextField。
TextFormat
TextFormat 类可用于将格式样式应用于 TextField 对象中的字符或段落。请参阅 TextFormat。
TextSnapshot
TextSnapshot 对象用于访问和布置影片剪辑中的静态文本。请参阅 TextSnapshot。
Video
Video 类用于显示 SWF 文件中的视频对象。可将此类用于 Flash Media Server 以显示 SWF 文件中的实时视频流,或者用于 Flash 中以播放 Flash 视频 (FLV) 文件。请参阅 Video。
XML
此类提供用于处理 XML 对象的方法和属性。请参阅 XML。
XMLNode
XMLNode 类表示 XML 文档树中的单个节点。它是 XML 类的超类。请参阅 XMLNode。
XMLSocket
XMLSocket 类可用于在服务器计算机与运行 Flash Player 的客户端之间建立永久套接字连接。客户端套接字实现了等待时间较短的数据传输,例如,实时聊天应用程序所需的快速数据传输。请参阅 XMLSocket。
XMLUI
XMLUI 对象实现与用作 Flash 创作工具扩展功能(如"行为"、"命令"、"效果"和"工具")的自定义用户界面的 SWF 文件的通信。请参阅 XMLUI。
5.内置包
一.flash.display 包中包含可用于构建可视显示内容的 BitmapData 类。BitmapData 类可用于在文档中创建可任意调整大小的透明或不透明位图图像,并且可以在运行时以各种方式对它们进行处理。
二.flash.external 包可用来与使用 ActionScript 代码的 Flash Player 容器进行通信.ExternalInterface 类是外部 API,它是一个子系统,帮助实现 ActionScript 与 Flash Player 容器(如使用 JavaScript 的 HTML 页)或使用 Flash Player 的台式机应用程序之间的通信。
三.flash.filters 包中包含用于 Flash Player 8 中的位图滤镜效果的类。滤镜可用来为 Image 和 MovieClip 实例实现丰富的视觉效果(如模糊、斜角、发光和投影)。
四.flash.geom 包中包含 geometry 类,如点、矩形和转换矩阵。这些类支持 BitmapData 类和位图缓存功能。
五.flash.net 包中包含一些类,这些类可用来在用户的计算机与服务器之间上传和下载一个或多个文件.
六.flash.text 包中包含 TextRenderer 类,通过该类可在 Flash Player 8 中使用高级消除锯齿功能。
七.mx.lang 包中包含 Locale 类,通过该类可使用多语言文本。
八.System 包中包含 capabilities、IME 和 security 类。这些类可以处理可能会影响 Flash Player 中的应用程序的设置。TextField 包中包含 StyleSheet 类,可以使用该类将 CSS 样式应用于文本。
actionscript2.0 (函数与方法)
方法和函数是一些可以在 SWF 文件中的任意位置重复使用的 ActionScript 代码块。您可以在 FLA 文件或外部 ActionScript 文件中编写自己的函数,然后可以从文档内的任意位置调用该函数。
方法只是一些位于 ActionScript 类定义中的函数。您可以定义函数,对传递的值执行一系列语句。函数也可以返回值。在定义了函数后,就可以从任意一个时间轴中调用它,包括加载的 SWF 文件的时间轴。
如果您将值作为参数传递给函数,则函数就可以使用提供的值进行计算。每个函数都有其各自的特性,而某些函数需要您传递特定类型或数量的值。如果传递的参数多于函数的需要,该函数将忽略多余的值。如果您没有传递必需的参数,则函数将为空的参数指定 undefined 数据类型。这可能导致在运行时出错。函数也可以返回值.
注意
若要调用函数,该函数的定义必须位于播放头已到达的帧中。
属于一个类的函数称作该类的方法。在应用程序中可以使用多种类型的函数,其中包括内置函数、命名函数和用户定义的函数、匿名函数、回调函数、构造函数和函数文本。
class Person {
public static var numPeople:Number = 0;
// 实例成员
private var _speed:Number;
// 构造函数
public function Person(speed:Number) {
Person.numPeople++;
this._speed = speed;
}
// 静态方法
public static function getPeople():Number {
return Person.numPeople;
}
// 实例方法
public function walk(speed:Number):Void {
this._speed = speed;
}
public function run():Void {
this._speed *= 2;
}
public function rest():Void {
this._speed = 0;
}
// getter/setter(存取器方法)
public function get speed():Number {
return this._speed;
}
}
方法只是一些位于 ActionScript 类定义中的函数。您可以定义函数,对传递的值执行一系列语句。函数也可以返回值。在定义了函数后,就可以从任意一个时间轴中调用它,包括加载的 SWF 文件的时间轴。
如果您将值作为参数传递给函数,则函数就可以使用提供的值进行计算。每个函数都有其各自的特性,而某些函数需要您传递特定类型或数量的值。如果传递的参数多于函数的需要,该函数将忽略多余的值。如果您没有传递必需的参数,则函数将为空的参数指定 undefined 数据类型。这可能导致在运行时出错。函数也可以返回值.
注意
若要调用函数,该函数的定义必须位于播放头已到达的帧中。
属于一个类的函数称作该类的方法。在应用程序中可以使用多种类型的函数,其中包括内置函数、命名函数和用户定义的函数、匿名函数、回调函数、构造函数和函数文本。
class Person {
public static var numPeople:Number = 0;
// 实例成员
private var _speed:Number;
// 构造函数
public function Person(speed:Number) {
Person.numPeople++;
this._speed = speed;
}
// 静态方法
public static function getPeople():Number {
return Person.numPeople;
}
// 实例方法
public function walk(speed:Number):Void {
this._speed = speed;
}
public function run():Void {
this._speed *= 2;
}
public function rest():Void {
this._speed = 0;
}
// getter/setter(存取器方法)
public function get speed():Number {
return this._speed;
}
}
2009年2月18日星期三
怎样在DOS中搜索指定的文件内容
可以用DIR命令,该命令是很常用,用途又很广的一个命令,详细的命令格式可以通过输入 dir /? 来查看,比如搜索含有cns的文件,格式一般为:
dir *cns*.* /s /p
解释是,在所有子目录中搜索文件名称为 任意字符+cns+任意字符.任意字符的文件,并且分页显示./s是指搜索当前目录下所有的子目录,而/p则是将结果分页显示.
dir *.as /s /a /o /n /b >c:\1.txt
显示文件路径加文件名,列表,并输出到c盘下1.txt文件
附DIR命令说明:
显示目录中的文件和子目录列表。
DIR [drive:][path][filename] [/A[[:]attributes]] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]
指定要列出的驱动器、目录和/或文件。
/A 显示具有指定属性的文件。
attributes D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 - 表示“否”的前缀
/B 使用空格式(没有标题信息或摘要)。
/C 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
停用分隔符显示。
/D 跟宽式相同,但文件是按栏分类列出的。
/L 用小写。
/N 新的长列表格式,其中文件名在最右边。
/O 用分类顺序列出文件。
sortorder N 按名称(字母顺序) S 按大小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后)
G 组目录优先 - 颠倒顺序的前缀
/P 在每个信息屏幕后暂停。
/Q 显示文件所有者。
/S 显示指定目录和所有子目录中的文件。
/T 控制显示或用来分类的时间字符域。
timefield C 创建时间
A 上次访问时间
W 上次写入的时间
/W 用宽列表格式。
/X 显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式,
短名称插在长名称前面。如果没有短名称,在其位置则
显示空白。
/4 用四位数字显示年
可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
来替代预先设定的开关。例如,/-W。
dir *cns*.* /s /p
解释是,在所有子目录中搜索文件名称为 任意字符+cns+任意字符.任意字符的文件,并且分页显示./s是指搜索当前目录下所有的子目录,而/p则是将结果分页显示.
dir *.as /s /a /o /n /b >c:\1.txt
显示文件路径加文件名,列表,并输出到c盘下1.txt文件
附DIR命令说明:
显示目录中的文件和子目录列表。
DIR [drive:][path][filename] [/A[[:]attributes]] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]
指定要列出的驱动器、目录和/或文件。
/A 显示具有指定属性的文件。
attributes D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 - 表示“否”的前缀
/B 使用空格式(没有标题信息或摘要)。
/C 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
停用分隔符显示。
/D 跟宽式相同,但文件是按栏分类列出的。
/L 用小写。
/N 新的长列表格式,其中文件名在最右边。
/O 用分类顺序列出文件。
sortorder N 按名称(字母顺序) S 按大小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后)
G 组目录优先 - 颠倒顺序的前缀
/P 在每个信息屏幕后暂停。
/Q 显示文件所有者。
/S 显示指定目录和所有子目录中的文件。
/T 控制显示或用来分类的时间字符域。
timefield C 创建时间
A 上次访问时间
W 上次写入的时间
/W 用宽列表格式。
/X 显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式,
短名称插在长名称前面。如果没有短名称,在其位置则
显示空白。
/4 用四位数字显示年
可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
来替代预先设定的开关。例如,/-W。
dreamweaver cs4的破解方法
dreamweaver cs4的破解方法已经出来了,我自己也试过,成功了~具体流程如下:
破解方法
1.先到Adobe官网下一个测试版的cs4。
2.下载完后,进行安装,千万要记住安装完后先不要运行软件,千万不要运行!
3.接下来找到这个目录 C:\WINDOWS\system32\drivers\etc
4.打开一个叫hosts的文件
5.在最下面加上一句127.0.0.1 practivate.adobe.com,保存关闭,在运行软甲就ok了!
6.还有就是提示大家一下,不要更新软件,更新软件后,这个破解方法就失效了!
这个是dreamweaver cs4 的序列号:1192-1413-8739-4724-1366-4303
这个是fireworks CS4 的序列号:1193-1117-4659-6225-5403-2674
破解方法
1.先到Adobe官网下一个测试版的cs4。
2.下载完后,进行安装,千万要记住安装完后先不要运行软件,千万不要运行!
3.接下来找到这个目录 C:\WINDOWS\system32\drivers\etc
4.打开一个叫hosts的文件
5.在最下面加上一句127.0.0.1 practivate.adobe.com,保存关闭,在运行软甲就ok了!
6.还有就是提示大家一下,不要更新软件,更新软件后,这个破解方法就失效了!
这个是dreamweaver cs4 的序列号:1192-1413-8739-4724-1366-4303
这个是fireworks CS4 的序列号:1193-1117-4659-6225-5403-2674
提示此产品的许可已停止工作,之后自动退出 解决办法
提示此产品的许可已停止工作,之后自动退出 解决办法 与FLEXnet Licensing Service服务有关
问题现象:提示此产品的许可已停止工作,之后自动退出。
FNPLicensingService.exe进程是安装Adobe CS3才有的,每次都跟随Adobe CS3启动的,非常重要的进程。
如果你删除了,就不能使用Adobe CS3,会提示许可证过期。
FNPLicensingService.exe进程是防盗用的,是一个软件产品许可证,不是病毒木马。
安装在C:\Program Files\Common Files\Macrovision Shared\FLEXnet Publisher下。
它占用内存,建议把它设为手动启动,开机时不要运行它。
运行→输入Services.msc回车→双击FLEXnet Licensing Service选项→更改启动类型为手动,单击应用。
这都与浮动许可证有关。就是FLEXnet Licensing Service。如果禁止了就会出现这种情况。猜得没错的话,整个 CS3 的各个软件都需要这个服务。
解决方法
1.如果只是禁止了。可运行“services.msc”把FLEXnet Licensing Service改为手动,这样当运行CS3后就会启动,关闭了就可以停止。
2.双击FLEXnet Licensing Service.reg添加到注册表。
3.解压复制FNPLicensingService.exe到C:\Program Files\Common Files\Macrovision Shared\FLEXnet Publisher,如果没有这个目录就创建它。
4.重启Windows.
问题现象:提示此产品的许可已停止工作,之后自动退出。
FNPLicensingService.exe进程是安装Adobe CS3才有的,每次都跟随Adobe CS3启动的,非常重要的进程。
如果你删除了,就不能使用Adobe CS3,会提示许可证过期。
FNPLicensingService.exe进程是防盗用的,是一个软件产品许可证,不是病毒木马。
安装在C:\Program Files\Common Files\Macrovision Shared\FLEXnet Publisher下。
它占用内存,建议把它设为手动启动,开机时不要运行它。
运行→输入Services.msc回车→双击FLEXnet Licensing Service选项→更改启动类型为手动,单击应用。
这都与浮动许可证有关。就是FLEXnet Licensing Service。如果禁止了就会出现这种情况。猜得没错的话,整个 CS3 的各个软件都需要这个服务。
解决方法
1.如果只是禁止了。可运行“services.msc”把FLEXnet Licensing Service改为手动,这样当运行CS3后就会启动,关闭了就可以停止。
2.双击FLEXnet Licensing Service.reg添加到注册表。
3.解压复制FNPLicensingService.exe到C:\Program Files\Common Files\Macrovision Shared\FLEXnet Publisher,如果没有这个目录就创建它。
4.重启Windows.
Adobe CS3重新激活的方法
Adobe CS3提示要重新激活,而且注册机无法使用时,在network070702的空间找到一种解决方法了:
方法一
1、删除文件
C:\Documents and Settings\All Users\Application Data\FLEXnet\adobe_00080000_tsf.data(需要显示所有文件)
2、启动Adobe CS3,稍等一会出现重新激活界面;
3、点按“其它激活选项”
4、选择“通过电话激活”并按“确定”
5、运行Adobe CS3注册机,复制激活码到注册机,按“Activate”获取授权码
6、输入新的授权码,按“激活”
方法二
1、删除文件
C:\Documents and Settings\All Users\Application Data\FLEXnet\adobe_00080000_tsf.data
2、点按“更改序列号”
3、运行Adobe CS3注册机,按“Generate Serial”获取序列号,输入第一行的序列号并按“激活”
4、选择“Adobe Acrobat 6 Standard”,输入注册机第二行的序列号并按“下一步”
5、选择“电话激活”
6、复制激活码到注册机,按“Activate”获取授权码
7、输入新的授权码,按“激活” bbs.bitsCN.com
首先找到X:\program files\common files\adobe\adobe pcd\cache\cache.db,把这个cache.db删除,
如果还不行,删除cache.db文件更换序列号,删除C:\Documents and Settings\Documents and Settings\All Users\Application Data\FLEXnet\下所有文件,可成功激活。
方法一
1、删除文件
C:\Documents and Settings\All Users\Application Data\FLEXnet\adobe_00080000_tsf.data(需要显示所有文件)
2、启动Adobe CS3,稍等一会出现重新激活界面;
3、点按“其它激活选项”
4、选择“通过电话激活”并按“确定”
5、运行Adobe CS3注册机,复制激活码到注册机,按“Activate”获取授权码
6、输入新的授权码,按“激活”
方法二
1、删除文件
C:\Documents and Settings\All Users\Application Data\FLEXnet\adobe_00080000_tsf.data
2、点按“更改序列号”
3、运行Adobe CS3注册机,按“Generate Serial”获取序列号,输入第一行的序列号并按“激活”
4、选择“Adobe Acrobat 6 Standard”,输入注册机第二行的序列号并按“下一步”
5、选择“电话激活”
6、复制激活码到注册机,按“Activate”获取授权码
7、输入新的授权码,按“激活” bbs.bitsCN.com
首先找到X:\program files\common files\adobe\adobe pcd\cache\cache.db,把这个cache.db删除,
如果还不行,删除cache.db文件更换序列号,删除C:\Documents and Settings\Documents and Settings\All Users\Application Data\FLEXnet\下所有文件,可成功激活。
actionscript 2.0 基础知识回顾(语法)
1.在为 Flash Player 7 及更高版本编写 ActionScript 时,代码是区分大小写的
2.点语法
要编写用于控制实例(如影片剪辑)或用于操作加载的 SWF 文件中的资源的 ActionScript,必须在代码中指定其名称和地址。这叫做目标路径。要将 SWF 文件中的对象设定为目标(或寻址到这些对象),请使用点语法(又称点记号)。例如,需要先将一个影片剪辑或按钮实例设定为目标,然后才能对它应用一个动作。点语法可帮助您创建要将其设定为目标的实例的路径。要设定为目标的实例的路径有时称为目标路径。
FLA 文件具有一种特别的层次结构。可以在舞台上创建实例或使用 ActionScript。甚至可以创建包含在其它实例中的实例。或者,您也可以让实例嵌套在多个其它实例中。对于任何实例,只要对它进行了命名,就可以操作它。
手动指定,具体方法是选择一个实例并在"属性"检查器中键入实例的名称(实例在舞台上时)。
使用 ActionScript 动态指定。可以使用 ActionScript 创建一个实例,并在创建该实例时为它分配一个实例名称。
this.createEmptyMovieClip("pic_mc", this.getNextHighestDepth());
pic_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg");
嵌套实例时,嵌套了另一个影片剪辑的影片剪辑被称为被嵌套的实例的父级。被嵌套的实例被称为子实例。主舞台和主时间轴实质上就是影片剪辑本身,因此可以将它们作为影片剪缉设定为目标
双击一个影片剪辑,将下面的 ActionScript 放置到该影片剪辑的时间轴上:
trace("me: " + this);
trace("my parent: " + this._parent);
测试 SWF 文件,您将看到"输出"面板中显示以下消息:
me: _level0.myClip
my parent: _level0
3.斜杠语法
斜杠语法在 Flash 3 和 4 中表示影片剪辑或变量的目标路径。此语法受 Flash Player 7 和更低版本中的 ActionScript 1.0 支持,但是不受 ActionScript 2.0 和 Flash Player 7/Flash Player 8 的支持。
4.标点
ActionScript 语句以分号 (;) 字符结束
在代码中使用冒号 (:) 为变量指定数据类型
使用大括号 ({}) 可以将 ActionScript 事件、类定义和函数组合成块。可以将左大括号与声明放在同一行中。
在 ActionScript 中定义函数时,将参数放在小括号 [()] 里面
文本 是直接出现在代码中的值。文本是 Flash 文档中的常数(保持不变)值。文本的例子包括 true、false、0、1、52,甚至字符串"foo"。
5.注释
//,单行和尾注
/*多
行
*/
/**
类中
*/
2.点语法
要编写用于控制实例(如影片剪辑)或用于操作加载的 SWF 文件中的资源的 ActionScript,必须在代码中指定其名称和地址。这叫做目标路径。要将 SWF 文件中的对象设定为目标(或寻址到这些对象),请使用点语法(又称点记号)。例如,需要先将一个影片剪辑或按钮实例设定为目标,然后才能对它应用一个动作。点语法可帮助您创建要将其设定为目标的实例的路径。要设定为目标的实例的路径有时称为目标路径。
FLA 文件具有一种特别的层次结构。可以在舞台上创建实例或使用 ActionScript。甚至可以创建包含在其它实例中的实例。或者,您也可以让实例嵌套在多个其它实例中。对于任何实例,只要对它进行了命名,就可以操作它。
手动指定,具体方法是选择一个实例并在"属性"检查器中键入实例的名称(实例在舞台上时)。
使用 ActionScript 动态指定。可以使用 ActionScript 创建一个实例,并在创建该实例时为它分配一个实例名称。
this.createEmptyMovieClip("pic_mc", this.getNextHighestDepth());
pic_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg");
嵌套实例时,嵌套了另一个影片剪辑的影片剪辑被称为被嵌套的实例的父级。被嵌套的实例被称为子实例。主舞台和主时间轴实质上就是影片剪辑本身,因此可以将它们作为影片剪缉设定为目标
双击一个影片剪辑,将下面的 ActionScript 放置到该影片剪辑的时间轴上:
trace("me: " + this);
trace("my parent: " + this._parent);
测试 SWF 文件,您将看到"输出"面板中显示以下消息:
me: _level0.myClip
my parent: _level0
3.斜杠语法
斜杠语法在 Flash 3 和 4 中表示影片剪辑或变量的目标路径。此语法受 Flash Player 7 和更低版本中的 ActionScript 1.0 支持,但是不受 ActionScript 2.0 和 Flash Player 7/Flash Player 8 的支持。
4.标点
ActionScript 语句以分号 (;) 字符结束
在代码中使用冒号 (:) 为变量指定数据类型
使用大括号 ({}) 可以将 ActionScript 事件、类定义和函数组合成块。可以将左大括号与声明放在同一行中。
在 ActionScript 中定义函数时,将参数放在小括号 [()] 里面
文本 是直接出现在代码中的值。文本是 Flash 文档中的常数(保持不变)值。文本的例子包括 true、false、0、1、52,甚至字符串"foo"。
5.注释
//,单行和尾注
/*多
行
*/
/**
类中
*/
ActionScript 与 JavaScript 之间的一些区别
ActionScript 不支持特定于浏览器的对象,例如 Document、Window 和 Anchor。
ActionScript 没有为所有 JavaScript 内置对象都提供支持。
ActionScript 不支持某些 JavaScript 语法构造,例如语句标签。
在 ActionScript 中,eval() 函数只能执行变量引用。
ActionScript 2.0 支持 ECMA-262 规范中没有的一些功能,例如类和强类型。这些功能中的很多功能都取自 ECMAScript (ECMA-262) 第 3 版语言规范
ActionScript 不支持使用 RegExp 对象的正则表达式。但是,Adobe Central 却支持 RegExp 对象。
ActionScript 没有为所有 JavaScript 内置对象都提供支持。
ActionScript 不支持某些 JavaScript 语法构造,例如语句标签。
在 ActionScript 中,eval() 函数只能执行变量引用。
ActionScript 2.0 支持 ECMA-262 规范中没有的一些功能,例如类和强类型。这些功能中的很多功能都取自 ECMAScript (ECMA-262) 第 3 版语言规范
ActionScript 不支持使用 RegExp 对象的正则表达式。但是,Adobe Central 却支持 RegExp 对象。
actionscript 2.0 基础知识回顾(创建对象)
1.创建简单对象
var secondObj:Object = {firstVar:"hello world", secondVar:28, thirdVar:new Date(1980, 0, 1)};
var i:String;
for (i in secondObj) {
trace(i + ": " + secondObj[i]);
}
2.使用数组创建对象
var usersArr:Array = new Array();
usersArr.push({firstname:"George"});
usersArr.push({firstname:"John"});
usersArr.push({firstname:"Thomas"});
var i:Number;
for (i = 0; i < usersArr.length; i++) {
trace(usersArr[i].firstname); // George, John, Thomas
}
__________________________________
var myObj:Object = {var1:"One", var2:"Two", var3:18, var4:1987};
var i:String;
for (i in myObj) {
trace(i + ": " + myObj[i]);
}
//输出以下结果:
/*
var1: One
var2: Two
var3: 18
var4: 1987
*/
3.转换对象
var firstNum:String = "17";
var secondNum:String = "29";
trace(firstNum + secondNum); // 1729
trace(Number(firstNum) + Number(secondNum)); // 46
var secondObj:Object = {firstVar:"hello world", secondVar:28, thirdVar:new Date(1980, 0, 1)};
var i:String;
for (i in secondObj) {
trace(i + ": " + secondObj[i]);
}
2.使用数组创建对象
var usersArr:Array = new Array();
usersArr.push({firstname:"George"});
usersArr.push({firstname:"John"});
usersArr.push({firstname:"Thomas"});
var i:Number;
for (i = 0; i < usersArr.length; i++) {
trace(usersArr[i].firstname); // George, John, Thomas
}
__________________________________
var myObj:Object = {var1:"One", var2:"Two", var3:18, var4:1987};
var i:String;
for (i in myObj) {
trace(i + ": " + myObj[i]);
}
//输出以下结果:
/*
var1: One
var2: Two
var3: 18
var4: 1987
*/
3.转换对象
var firstNum:String = "17";
var secondNum:String = "29";
trace(firstNum + secondNum); // 1729
trace(Number(firstNum) + Number(secondNum)); // 46
actionscript 2.0 基础知识回顾(加载变量)
1.URL
this.createTextField("myTxt", 100, 0, 0, 100, 20);
myTxt.autoSize = "left";
if (_level0.myURL == undefined) {
myTxt.text = "myURL is not defined";
} else {
myTxt.text = _level0.myURL;
}
<\embed src="urlvariables.swf?myURL=http://weblogs.macromedia.com" quality="high" bgcolor="#ffffff" width="550" height="400" name="urlvariables" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
2.FlashVars
< embed src="myflashvars.swf" FlashVars="myURL=http://weblogs.adobe.com/" quality="high" bgcolor="#ffffff" width="550" height="400" name="myflashvars" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
使用 FlashVars 或将变量随 URL 传递的优点之一是,在 SWF 文件加载时变量在 Flash 中便随即可用。这意味着无须编写任何函数来检查变量是否已完成加载,而在使用 LoadVars 或 XML 加载变量时需要编写函数进行检查。
3.LoadVars
var my_lv:LoadVars = new LoadVars();
my_lv.onLoad = function(success:Boolean):Void {
if (success) {
trace(this.dayNames); // Sunday,Monday,Tuesday,...
} else {
trace("Error");
}
}
my_lv.load("http://www.helpexamples.com/flash/params.txt");
this.createTextField("myTxt", 100, 0, 0, 100, 20);
myTxt.autoSize = "left";
if (_level0.myURL == undefined) {
myTxt.text = "myURL is not defined";
} else {
myTxt.text = _level0.myURL;
}
<\embed src="urlvariables.swf?myURL=http://weblogs.macromedia.com" quality="high" bgcolor="#ffffff" width="550" height="400" name="urlvariables" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
2.FlashVars
< embed src="myflashvars.swf" FlashVars="myURL=http://weblogs.adobe.com/" quality="high" bgcolor="#ffffff" width="550" height="400" name="myflashvars" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
使用 FlashVars 或将变量随 URL 传递的优点之一是,在 SWF 文件加载时变量在 Flash 中便随即可用。这意味着无须编写任何函数来检查变量是否已完成加载,而在使用 LoadVars 或 XML 加载变量时需要编写函数进行检查。
3.LoadVars
var my_lv:LoadVars = new LoadVars();
my_lv.onLoad = function(success:Boolean):Void {
if (success) {
trace(this.dayNames); // Sunday,Monday,Tuesday,...
} else {
trace("Error");
}
}
my_lv.load("http://www.helpexamples.com/flash/params.txt");
actionscript 2.0 基础知识回顾(数据类型)
1.Boolean
var my_lv:LoadVars = new LoadVars();
//success 是一个布尔值
my_lv.onLoad = function(success:Boolean) {
//如果 success 为 true,则输出 monthNames
if (success) {
trace(my_lv.monthNames);
//如果 success 为 false,则输出消息
} else {
trace("unable to load text file");
}
};
my_lv.load("http://www.helpexamples.com/flash/params.txt");
2.MovieClip
一个正方形
this.createEmptyMovieClip("square_mc", 1);
square_mc.lineStyle(1, 0x000000, 100);
square_mc.beginFill(0xFF0000, 100);
square_mc.moveTo(100, 100);
square_mc.lineTo(200, 100);
square_mc.lineTo(200, 200);
square_mc.lineTo(100, 200);
square_mc.lineTo(100, 100);
square_mc.endFill();
square_mc.onPress = function() {
this.startDrag();
};
square_mc.onRelease = function() {
this.stopDrag();
};
3.null
if (Selection.getFocus() == null) {
trace("no selection");
}
4.Number
var bottles:Number = 0;
bottles = 10 + Math.floor(Math.random() * 7);
trace("There are " + bottles + " bottles");
5.Object
var user:Object = new Object();
user.name = "Irving";
user.age = 32;
user.phone = "555-1234";
6.String
var greeting_str:String = "Welcome, " + firstName;
要在字符串中包含引号,请在它前面放置一个反斜杠字符 (\)。这就是所谓的将字符转义。在 ActionScript 中,还有一些只能用特殊的转义序列才能表示的字符。下表列出了所有 ActionScript 转义符:
转义序列
字符
\b 退格符 (ASCII 8)
\f 换页符 (ASCII 12)
\n 换行符 (ASCII 10)
\r 回车符 (ASCII 13)
\t 制表符 (ASCII 9)
\" 双引号
\' 单引号
\\ 反斜杠
\000 - \377 以八进制指定的字节
\x00 - \xFF 以十六进制指定的字节
\u0000 - \uFFFF 以十六进制指定的 16 位 Unicode 字符
7.undefined
if (init == undefined) {
trace("initializing app");
init = true;
}
8.Void
// 创建返回类型为 Void 的函数
function displayFromURL(url:String):Void {}
var my_lv:LoadVars = new LoadVars();
//success 是一个布尔值
my_lv.onLoad = function(success:Boolean) {
//如果 success 为 true,则输出 monthNames
if (success) {
trace(my_lv.monthNames);
//如果 success 为 false,则输出消息
} else {
trace("unable to load text file");
}
};
my_lv.load("http://www.helpexamples.com/flash/params.txt");
2.MovieClip
一个正方形
this.createEmptyMovieClip("square_mc", 1);
square_mc.lineStyle(1, 0x000000, 100);
square_mc.beginFill(0xFF0000, 100);
square_mc.moveTo(100, 100);
square_mc.lineTo(200, 100);
square_mc.lineTo(200, 200);
square_mc.lineTo(100, 200);
square_mc.lineTo(100, 100);
square_mc.endFill();
square_mc.onPress = function() {
this.startDrag();
};
square_mc.onRelease = function() {
this.stopDrag();
};
3.null
if (Selection.getFocus() == null) {
trace("no selection");
}
4.Number
var bottles:Number = 0;
bottles = 10 + Math.floor(Math.random() * 7);
trace("There are " + bottles + " bottles");
5.Object
var user:Object = new Object();
user.name = "Irving";
user.age = 32;
user.phone = "555-1234";
6.String
var greeting_str:String = "Welcome, " + firstName;
要在字符串中包含引号,请在它前面放置一个反斜杠字符 (\)。这就是所谓的将字符转义。在 ActionScript 中,还有一些只能用特殊的转义序列才能表示的字符。下表列出了所有 ActionScript 转义符:
转义序列
字符
\b 退格符 (ASCII 8)
\f 换页符 (ASCII 12)
\n 换行符 (ASCII 10)
\r 回车符 (ASCII 13)
\t 制表符 (ASCII 9)
\" 双引号
\' 单引号
\\ 反斜杠
\000 - \377 以八进制指定的字节
\x00 - \xFF 以十六进制指定的字节
\u0000 - \uFFFF 以十六进制指定的 16 位 Unicode 字符
7.undefined
if (init == undefined) {
trace("initializing app");
init = true;
}
8.Void
// 创建返回类型为 Void 的函数
function displayFromURL(url:String):Void {}
2009年2月15日星期日
获取网页元素坐标
var _left = parseInt(_object.offsetLeft, 10);
var _top = parseInt(_object.offsetTop, 10);
while(_object = _object.offsetParent)
{
_left += parseInt(_object.offsetLeft, 10);
_top += parseInt(_object.offsetTop, 10);
if(_object != document.body)
{
_left -= parseInt(_object.scrollLeft, 10);
_top -= parseInt(_object.scrollTop, 10);
}
}
var _top = parseInt(_object.offsetTop, 10);
while(_object = _object.offsetParent)
{
_left += parseInt(_object.offsetLeft, 10);
_top += parseInt(_object.offsetTop, 10);
if(_object != document.body)
{
_left -= parseInt(_object.scrollLeft, 10);
_top -= parseInt(_object.scrollTop, 10);
}
}
persits.jpeg 序列号
官方下载的persits.jpeg 都需要注册,不然就有时间限制。非常捧的水印组件,玩服务器的人都知道,不再重复介绍了。不知道的请自行查找相关介绍。官方网站http://www.aspjpeg.com最新版本v1.801官方下载http://www.persits.com/aspjpeg.exe提示在安装过程会出现一个框,你输入注册码17361-38566-42221即可aspx1专用系列号sn:17361-38566-42221检测是否注册成功的方法:将以下代码保存为asp,拷贝在服务器上,用浏览器打开,看返回结果。 《%set jpeg=server.createobject("persits.jpeg")response.write jpeg.expires'检测aspjpeg的注册状态'注册成功则到期时间为:9999-9-9'否则为:安装日期加1个月期限%》 Set jpg = Server.CreateObject("Persits.Jpeg") jpg.RegKey = "48958-77556-02411"
没安装之前会显示错误:
错误类型:Server 对象, ASP 0177 (0x800401F3)无效的类别字符串
没安装之前会显示错误:
错误类型:Server 对象, ASP 0177 (0x800401F3)无效的类别字符串
2009年2月10日星期二
javascript 学习
Array类创建方法:
JavaScript代码
var aValue = new Array();
也可以直接:
JavaScript代码
var aValue = ["red","blue","green"];
toString(),valueOf(),toLocaleString()这三个方法等效:
JavaScript代码
var aValue = ["red","blue","green"];
alert(aValue.toString());//red,blue,green
alert(aValue.toValueOf());//red,blue,green
alert(aValue.toLocaleString());//red,blue,green
join()把数组转换成字符串:
JavaScript代码
var aValue = ["red","blue","green"];
alert(aValue.join("-"));//red-blue-green
split()把字符串处理成数组:
JavaScript代码
var sColor = "red,blue,green";
var aColor = sColor.split(",");
alert(aColor.toString());//red,blue,green
concat()参数将被附加在数组末尾:
JavaScript代码
var aColor1 = ["red","blue"];
var aColor2 = aColor1.concat("green","yellow");
alert(aColor2.toString());//"red","blue","green","yellow"
slice()返回从起始位置到结束位置的所有项:
JavaScript代码
var aColor1 = ["red","blue","green","yellow","black"];
var aColor2 = aColor1.slice(1);//blue,green,yellow,black
var aColor3 = aColor1.slice(1,4);//blue,green,yellow
push()用于在Array结尾添加一个或多个项,pop()用于删除最后一个数组项(length-1);
JavaScript代码
var stack = new Array();
stack.push("red");
stack.push("green");
stack.push("yellow");
alert(stack.toString());//red,green,yellow
var vItem = stack.pop();
alert(vItem.toString());//yellow
alert(stack.toString());//red,green
shift()删除数组中的第一项,unshift()把一个项放在数组的第一个位置
JavaScript代码
var aColors = ["red","green","yellow"];
var vItem = aColors.shift();
alert(aColors.toString());//green,yellow
alert(vItem);//red
aColors.unshift("black");
alert(aColors.toString());//black,green,yellow
reverse()颠倒数组项的顺序
JavaScript代码
var aColors = ["red","green","blue"];
aColors.reverse();
alert(aColors.toString());//blue,green,red
sort()将数组项的值按升序为他们排序
JavaScript代码
var aColors = ["red","green","blue","yellow"];
aColors.sort();
alert(aColors.toString());//blue,green,red,yellow
splice()把数据项插入数组的中部aColors.splice(0,2)删除数组aColors中的前两项;aColors.splice(2,0,"red","green")将在位置2处插入"red"和"green"aColors.splice(2,1,"red","green")删除位置2处的项,然后在位置2处插入"red"和"green"
JavaScript代码
var aColors = ["red","green","blue","yellow"];
aColors.splice(0,2);//blue,yellow
aColors.splice(2,0,"r","g");//red,green,r,g,blue,yellow
aColors.splice(2,1,"r","g");//red,green,r,g,yellow
JavaScript代码
var aValue = new Array();
也可以直接:
JavaScript代码
var aValue = ["red","blue","green"];
toString(),valueOf(),toLocaleString()这三个方法等效:
JavaScript代码
var aValue = ["red","blue","green"];
alert(aValue.toString());//red,blue,green
alert(aValue.toValueOf());//red,blue,green
alert(aValue.toLocaleString());//red,blue,green
join()把数组转换成字符串:
JavaScript代码
var aValue = ["red","blue","green"];
alert(aValue.join("-"));//red-blue-green
split()把字符串处理成数组:
JavaScript代码
var sColor = "red,blue,green";
var aColor = sColor.split(",");
alert(aColor.toString());//red,blue,green
concat()参数将被附加在数组末尾:
JavaScript代码
var aColor1 = ["red","blue"];
var aColor2 = aColor1.concat("green","yellow");
alert(aColor2.toString());//"red","blue","green","yellow"
slice()返回从起始位置到结束位置的所有项:
JavaScript代码
var aColor1 = ["red","blue","green","yellow","black"];
var aColor2 = aColor1.slice(1);//blue,green,yellow,black
var aColor3 = aColor1.slice(1,4);//blue,green,yellow
push()用于在Array结尾添加一个或多个项,pop()用于删除最后一个数组项(length-1);
JavaScript代码
var stack = new Array();
stack.push("red");
stack.push("green");
stack.push("yellow");
alert(stack.toString());//red,green,yellow
var vItem = stack.pop();
alert(vItem.toString());//yellow
alert(stack.toString());//red,green
shift()删除数组中的第一项,unshift()把一个项放在数组的第一个位置
JavaScript代码
var aColors = ["red","green","yellow"];
var vItem = aColors.shift();
alert(aColors.toString());//green,yellow
alert(vItem);//red
aColors.unshift("black");
alert(aColors.toString());//black,green,yellow
reverse()颠倒数组项的顺序
JavaScript代码
var aColors = ["red","green","blue"];
aColors.reverse();
alert(aColors.toString());//blue,green,red
sort()将数组项的值按升序为他们排序
JavaScript代码
var aColors = ["red","green","blue","yellow"];
aColors.sort();
alert(aColors.toString());//blue,green,red,yellow
splice()把数据项插入数组的中部aColors.splice(0,2)删除数组aColors中的前两项;aColors.splice(2,0,"red","green")将在位置2处插入"red"和"green"aColors.splice(2,1,"red","green")删除位置2处的项,然后在位置2处插入"red"和"green"
JavaScript代码
var aColors = ["red","green","blue","yellow"];
aColors.splice(0,2);//blue,yellow
aColors.splice(2,0,"r","g");//red,green,r,g,blue,yellow
aColors.splice(2,1,"r","g");//red,green,r,g,yellow

scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量
以上主要指IE之中,FireFox差异如下:
IE6.0、FF1.06+:
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border
IE5.0/5.5:
clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height
(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量
以上主要指IE之中,FireFox差异如下:
IE6.0、FF1.06+:
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border
IE5.0/5.5:
clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height
(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)
如何用div+css布局页面
如今web2.0炒的很厉害,先不去管它web2.0究竟是什么东西,反正div+css好像是火的不行了.各大知名站点都赶时髦似的把原来的表格布局翻新成了div+css,并美其名曰"本站符合w3c标准",以便让别人觉得他们的网站用的是最先进的技术.div布局真有那么先进么?这个问题仍在争论之中.在这里咱们不参与这种无聊的争论,学会它自己感觉一下不就清楚了么?
实际上div布局并不是什么高深的东西,如果你知道一点css就变得更简单了.首先我要说明几点:
1.这里的div并不是我们所说的层,虽然他们的标签都是
实际上div布局并不是什么高深的东西,如果你知道一点css就变得更简单了.首先我要说明几点:
1.这里的div并不是我们所说的层,虽然他们的标签都是
,在这里你可以把div理
解成一个容器,它可以放文字,图片,表格等等.
2.用div布局必须对页面的结构进行准确的分析,当然用table也要分析页面结构.用div要分清上下,左右,实际上div布局也只有上下,左右.分析结构要先整体再部分,先分析整体的页面布局,例如我们一般的页面是上(banner和导航),中(页面主体内容,新闻等等),下(版权信息块)结构.
+------------------------------------+
| |
| header |
| |
|------------------------------------|
| |
| |
| midbody |
| |
| |
| |
| |
| |
|------------------------------------|
| |
| foot |
| |
+------------------------------------+
于是我们可以把整个页面放在一个大div内,于是我们可以这样来写[div>结构:
解释下上面的id是什么东西,id后面的内容是当前div以及div内部的东西用的css,这个css可
以规定div的宽度,大小,位置以及内部文字的大小、样式、颜色等等。
下面看下这几个css的代码:
/*页面主容器样式*/
#container{
width:90%;/*宽度*/
margin: 0 auto;/*边界auto为自动,这里用到了缩写形式意思为上下为0,
左右自动*/
}
/*页面头*/
#header{
width:780px;
height: 130px;
margin: 0 auto;
overflow:hidden;/*防止div被撑开,超过div大小就隐藏*/
background:#999999;/*背景色*/
}
/*页面中间*/
#midbody{
width:780px;
height: auto;
height:auto;
margin:0 auto;
overflow:hidden;
background: #990000;
}
/*页面底部*/
#foot{
width:780px;
height:100px;
margin:0 auto;
background: #99FFCC;
}
看完整体就要研究部分了,对于部分来说无非就是上下或左右结构了,例如下面的中间又分
为左右。
+------------------------------------+
| |
| header |
| |
|------------------------------------|
| | |
| | midbody |
| | |
|leftside| rightside |
| | |
| | |
| | |
| | |
|------------------------------------|
| |
| foot |
| |
+------------------------------------+
于是div结构可写成:
midbody中的leftside和rightside的css为:
#leftside{
width:220px;
float:left;/*该层位于外层的左边*/
height:500px;
background:#167692;
}
#rightside{
width:558px;
height:500px;
float:right;/*该层位于外层的右边*/
background: #CCCC00;
}
如果是这样的结构:
+------------------------------------+
| |
| header |
| |
|------------------------------------|
| | rightside |
| | rtop |
| | |
|leftside|---------------------------|
| | |rbottom |
| | left | right |
| | | |
| | | |
|------------------------------------|
| |
| foot |
| |
+------------------------------------+
则div结构为:
css为:
#rtop{
width:558px;
height:200px
margin:0 auto;
background: #CCCC00;
}
#rbottom{
width:558px;
height:300px;
margin:0 auto;
background: #CCee00;
}
#left{
width:258px;
float:left;
height:300px;
background: #CCCCed;
}
#rightside{
width:300px;
height:300px;
float:right;
background: #Cdfd00;
}
应该很清楚了吧?只要看懂了最外层的到里面都是一样的道理。
源文件在附件里(index1.html为以上上所说样式,index.html为用div画边框线的样式)
下载附件:div.rar
解成一个容器,它可以放文字,图片,表格等等.
2.用div布局必须对页面的结构进行准确的分析,当然用table也要分析页面结构.用div要分清上下,左右,实际上div布局也只有上下,左右.分析结构要先整体再部分,先分析整体的页面布局,例如我们一般的页面是上(banner和导航),中(页面主体内容,新闻等等),下(版权信息块)结构.
+------------------------------------+
| |
| header |
| |
|------------------------------------|
| |
| |
| midbody |
| |
| |
| |
| |
| |
|------------------------------------|
| |
| foot |
| |
+------------------------------------+
于是我们可以把整个页面放在一个大div内,于是我们可以这样来写[div>结构:
/*大容器放全部内容*/
/*上*/
/*中*/
/*下*/
解释下上面的id是什么东西,id后面的内容是当前div以及div内部的东西用的css,这个css可
以规定div的宽度,大小,位置以及内部文字的大小、样式、颜色等等。
下面看下这几个css的代码:
/*页面主容器样式*/
#container{
width:90%;/*宽度*/
margin: 0 auto;/*边界auto为自动,这里用到了缩写形式意思为上下为0,
左右自动*/
}
/*页面头*/
#header{
width:780px;
height: 130px;
margin: 0 auto;
overflow:hidden;/*防止div被撑开,超过div大小就隐藏*/
background:#999999;/*背景色*/
}
/*页面中间*/
#midbody{
width:780px;
height: auto;
height:auto;
margin:0 auto;
overflow:hidden;
background: #990000;
}
/*页面底部*/
#foot{
width:780px;
height:100px;
margin:0 auto;
background: #99FFCC;
}
看完整体就要研究部分了,对于部分来说无非就是上下或左右结构了,例如下面的中间又分
为左右。
+------------------------------------+
| |
| header |
| |
|------------------------------------|
| | |
| | midbody |
| | |
|leftside| rightside |
| | |
| | |
| | |
| | |
|------------------------------------|
| |
| foot |
| |
+------------------------------------+
于是div结构可写成:
midbody中的leftside和rightside的css为:
#leftside{
width:220px;
float:left;/*该层位于外层的左边*/
height:500px;
background:#167692;
}
#rightside{
width:558px;
height:500px;
float:right;/*该层位于外层的右边*/
background: #CCCC00;
}
如果是这样的结构:
+------------------------------------+
| |
| header |
| |
|------------------------------------|
| | rightside |
| | rtop |
| | |
|leftside|---------------------------|
| | |rbottom |
| | left | right |
| | | |
| | | |
|------------------------------------|
| |
| foot |
| |
+------------------------------------+
则div结构为:
css为:
#rtop{
width:558px;
height:200px
margin:0 auto;
background: #CCCC00;
}
#rbottom{
width:558px;
height:300px;
margin:0 auto;
background: #CCee00;
}
#left{
width:258px;
float:left;
height:300px;
background: #CCCCed;
}
#rightside{
width:300px;
height:300px;
float:right;
background: #Cdfd00;
}
应该很清楚了吧?只要看懂了最外层的到里面都是一样的道理。
源文件在附件里(index1.html为以上上所说样式,index.html为用div画边框线的样式)
下载附件:div.rar
用javascript来实现页面的换肤功能
js实现换肤功能的实现主要是通过利用js控制CSS来实现的。大致的实现原理是这样的,1、先定义一个页面基本样式style.css来确定div的宽高等属性,使得整个页面的DIV元素有一个基本的框架结构。2、再定义一系列的样式color1.css,color2.css……用来确定DIV元素的背景颜色,边框颜色等等。3、用JS函数来决定调用哪个样式,并把调进来的样式写进cookie,这样就可以达功能。
例如:我们的页面结构如下:-------------------------------------------style.css#header{width:700px;height:120px; margin:0px auto;}#contant{width:700px;height:400px; margin:0px auto;}#footer{width:700px;height:200px; margin:0px auto;}-------------------------------------------color1.css#header,#contant,#footer{boder:1px solid #dfaf33; background-color:#eeeeee;}-------------------------------------------color2.css#header,#contant,#footer{boder:1px solid #ff00ea; background-color:#ff3322;}-------------------------------------------页面中这两行比较关键:[link href="css/style.css" rel="stylesheet" type="text/css">[link href="css/color1.css" id="color" rel="stylesheet" type="text/css">第1行引入页面的基本样式,第2行引入一个颜色样式color2.css给页面一个初始化颜色,第2行中有一个id="color"这个很关键它为JS函数提供了
接口,js通过这个id改变href的值来决定引入那个颜色样式,从而达到改变页面颜色样式的目的。改变颜色样式的按钮我们可以用文字链接来实现,也可以用其他元素来实现。样式1样式2--------------------------------------------实现这些功能的js函数:function getObject(elementId) { //获取指定id的object if (document.getElementById) { return document.getElementById(elementId); } else if (document.all) { return document.all[elementId]; } else if (document.layers) { return document.layers[elementId]; }}function changeStyle(id){//切换样式 var stylesheet=getObject("color").href="css/color"+id+".css"; document.cookie="stylesheet="+escape(stylesheet);//写入Cookie //alert(document.cookie); //alert(stylesheet);}
function initStyle(){ //初始化样式,如果cookie存在样式,则加载cookie样式,否则加载默认样式 if(/stylesheet=([^;]+)/.test(document.cookie))//判断是否存在cookie. getObject("color").href=unescape(RegExp.$1); //alert(/stylesheet=([^;]+)/.test(document.cookie));}initStyle();
例如:我们的页面结构如下:-------------------------------------------style.css#header{width:700px;height:120px; margin:0px auto;}#contant{width:700px;height:400px; margin:0px auto;}#footer{width:700px;height:200px; margin:0px auto;}-------------------------------------------color1.css#header,#contant,#footer{boder:1px solid #dfaf33; background-color:#eeeeee;}-------------------------------------------color2.css#header,#contant,#footer{boder:1px solid #ff00ea; background-color:#ff3322;}-------------------------------------------页面中这两行比较关键:[link href="css/style.css" rel="stylesheet" type="text/css">[link href="css/color1.css" id="color" rel="stylesheet" type="text/css">第1行引入页面的基本样式,第2行引入一个颜色样式color2.css给页面一个初始化颜色,第2行中有一个id="color"这个很关键它为JS函数提供了
接口,js通过这个id改变href的值来决定引入那个颜色样式,从而达到改变页面颜色样式的目的。改变颜色样式的按钮我们可以用文字链接来实现,也可以用其他元素来实现。样式1样式2--------------------------------------------实现这些功能的js函数:function getObject(elementId) { //获取指定id的object if (document.getElementById) { return document.getElementById(elementId); } else if (document.all) { return document.all[elementId]; } else if (document.layers) { return document.layers[elementId]; }}function changeStyle(id){//切换样式 var stylesheet=getObject("color").href="css/color"+id+".css"; document.cookie="stylesheet="+escape(stylesheet);//写入Cookie //alert(document.cookie); //alert(stylesheet);}
function initStyle(){ //初始化样式,如果cookie存在样式,则加载cookie样式,否则加载默认样式 if(/stylesheet=([^;]+)/.test(document.cookie))//判断是否存在cookie. getObject("color").href=unescape(RegExp.$1); //alert(/stylesheet=([^;]+)/.test(document.cookie));}initStyle();
CSS+div重构网页
●在重构也面之前要做的准备工作:
1.拿一张PSD效果图,必需是PSD的这样的话你就可以自己更加随意的做切片;
2.先把PSD不做切片生成一个网页,起名为index_psd.html(这个页面做参考用);
3. 在准备几个必需的文件夹 images(放图片) 、css(放css样式文件)、js(放js文件);
●准备工作做好以后,先分析整个页面的结构。分析页面的结构要先整体再部分,先看页面中最大的板块是怎样关联的是上下并列还是左右平铺。看清了页面的大板块结构,就可以构建页面最基础的几个区块了。例如我们的页面试上中下结构,这时就可以写:
//放也面头和导航等
//页面的主题内容
//页面脚版权声明等等
●写css的时候就需要使用index_psd.html这个文件了,用DW打开这个文件,选择视图模式,可以通过拉辅助线,来测量各个区块的长宽为设置CSS提供参考,这样做的好处就是重构出来的页面可以精确到1像素。
●每写好一个区块就要用IE和ff测试下效果,以便及时发现问题及时解决,在各个区块没内容的时候最好给他们都加上背景色。
●写好大的板块后,再分析大板块里面的内容,同样的道理也是先整体再部分,例如内容页面看起来是左右两个板块,这个时候我们可以把代码写为:
//放也面头和导航等
//页面脚版权声明等等
其中content-2-1中的2表是分两栏,2-1表示左栏,2-2表示右栏这样的分栏方式可以使自己查看页面代码的时候更加直观,分好多栏的时候这个优势更加明显。
●新闻列表,文章列表等等最好使用:
●栏目列表加描述的最好用:
●在CSS文件定义的最开始最好加上如下语句
body,html{ height:100%; }
*{ margin:0px; padding:0px; }
●最好能给大的区块设置overflow::hidden,这样可以保证容器不被撑开,从而破坏整个页面的布局。
1.拿一张PSD效果图,必需是PSD的这样的话你就可以自己更加随意的做切片;
2.先把PSD不做切片生成一个网页,起名为index_psd.html(这个页面做参考用);
3. 在准备几个必需的文件夹 images(放图片) 、css(放css样式文件)、js(放js文件);
●准备工作做好以后,先分析整个页面的结构。分析页面的结构要先整体再部分,先看页面中最大的板块是怎样关联的是上下并列还是左右平铺。看清了页面的大板块结构,就可以构建页面最基础的几个区块了。例如我们的页面试上中下结构,这时就可以写:
//放也面头和导航等
//页面的主题内容
//页面脚版权声明等等
●写css的时候就需要使用index_psd.html这个文件了,用DW打开这个文件,选择视图模式,可以通过拉辅助线,来测量各个区块的长宽为设置CSS提供参考,这样做的好处就是重构出来的页面可以精确到1像素。
●每写好一个区块就要用IE和ff测试下效果,以便及时发现问题及时解决,在各个区块没内容的时候最好给他们都加上背景色。
●写好大的板块后,再分析大板块里面的内容,同样的道理也是先整体再部分,例如内容页面看起来是左右两个板块,这个时候我们可以把代码写为:
//放也面头和导航等
//页面的主题内容
//左边
//右边
//左边
//右边
//页面脚版权声明等等
其中content-2-1中的2表是分两栏,2-1表示左栏,2-2表示右栏这样的分栏方式可以使自己查看页面代码的时候更加直观,分好多栏的时候这个优势更加明显。
●新闻列表,文章列表等等最好使用:
- 新闻标题1
- 新闻标题2
- 新闻标题n
…………
●栏目列表加描述的最好用:
- 栏目1
- 栏目2
- 栏目1描述
- 栏目2描述
●在CSS文件定义的最开始最好加上如下语句
body,html{ height:100%; }
*{ margin:0px; padding:0px; }
●最好能给大的区块设置overflow::hidden,这样可以保证容器不被撑开,从而破坏整个页面的布局。
2009年2月6日星期五
window.opener与window.parent
window.parent是相对于iframe而言的父页面,window.oper是window.open打开子页面的父页面
window.parent说明window.parent能获取一个框架的父窗口或父框架。顶层窗口的parent引用的是它本身.
window.opener引用的是window.open打开的页面的父页面。
opener即谁打开我的,比如A页面利用window.open弹出了B页面窗口,那么A页面所在窗口就是B页面的
opener,在B页面通过opener对象可以访问A页面。
parent表示父窗口,比如一个A页面利用iframe或frame调用B页面,那么A页面所在窗口就是B页面的
parent。
window.parent说明window.parent能获取一个框架的父窗口或父框架。顶层窗口的parent引用的是它本身.
window.opener引用的是window.open打开的页面的父页面。
opener即谁打开我的,比如A页面利用window.open弹出了B页面窗口,那么A页面所在窗口就是B页面的
opener,在B页面通过opener对象可以访问A页面。
parent表示父窗口,比如一个A页面利用iframe或frame调用B页面,那么A页面所在窗口就是B页面的
parent。
2009年2月3日星期二
seo
对网站运营很感兴趣的朋友们可以交流一下,下面是我整理的部分笔记!
一.SEO概念:就是搜索引擎优化,根据排名规则对网页各方面进行优化来提高网站或网页在搜索结果内的排名
二.选主机:尽量用独立IP和空间,同一IP下有多少个站点的查询网址:http://whois.webhosting.info/ip(要查询的IP号),然后便得到该ip下的所有站点,可在相关搜索引擎里输入:site:www.###.com/cn/来检测该站点是否被收录或者根本就被卦掉,最好不要使用有很多站点被封被罚的服务器。
三.选域名:在同等情况下,代表非商业性的后缀.org和.net有着比.com更高的排名优势;对于中国域的.cn和.com.cn又比.com更好。
四.关键词:最好的关键词是那些没有被广泛滥用而又很多人搜索的词。
五.关键字选择 工具推荐
google:http://adwprds/google.com/se;ect/KeywordSandbox
百度:http://www2.baidu.com/omqiore/dsqieru/php
六.关于搜索引擎对域名或网站title的字母或中文笔划的排列,总体上数字比字母靠前,yahoo.cn是按拼音顺序来排列的,
七.关键词写法:一般是"
八.关键词密度(Keyword Density),一般在1%到7%较为合适;
九.关于网站地图:一般一页不超过100个链接,多则拆分成多个网页;
工具推荐:Xenu:http://home.snafu.de/tilman/xenulink.html生成网站地图
十.对于使用frame框架做的网页要对其进行优化,使用“Noframe”标签进行优化,把NOframe标签看做是一个普通文本内容的主页。在区域中指向frame页的链接以及带有关键词的描述文本,同时在框架以外的区域也出现关键词文本。这样,搜索引擎才能正确索引框架内的信息。还有一个方法::采用iframe即内联框架(inner Frame)技术代码为:
"(iframe src=xx width=x height=x scrolling=xx frameborder=x)(/iframe)"
(meta name author----网站作者)
(meta name classification---网站所属目录类别)
(meta name generator----网站用什么样软件做的)
十一.在URL中尽量不要有session id,也不要用id作为参数名称,尽量不要用参数,如id类。。。层级链接尽量不要超过2个,这样可增加动态页面被抓取的深度和数量。
十二.高质量的链接的相关定义:
1.搜索引擎目录 中的链接以及已加入目录的网站的链接
2.与你的主题相关或互补的网站
3.PR值不低于4的网站
4.流量大、知名度高、频繁更新的重要网站(如搜索引擎新闻源)
5.具有很少导出链接的网站
6.以你的关键词在搜索结果中排名前三页的网站
7.内容质量高的网站
十三.垃圾链接的定义
1.留言簿、评论或BBS中大量发贴夹带网站链接
2.已经加入太多导出链接的网站(几十甚至上百个“友情链接中有一个你的网站)
3.加入链接基地(link farm)等链接程序,与大量会员网站自动交换链接,被搜索引擎视为典型的垃圾链接,极有可能受到惩罚或牵连。”google就会对那些使用链接程序的站点进行永久性删除)
十四.关于导出链接
1.适当增加与你网站关键词有关的行业/专业的资源性网站链接,不仅有得于丰富网站内容,也有利于提升搜索引擎对你网站的好印象。
2.但要控制数量。一般一个页面导出链接不超过15个,首页的导出链接更要控制在10个以内,多出的应单独安排在次级页面。gg认为一个页面的最大导出链接数量不应超过100个。
十五.关于内部链接
网站可以通过建立多个二级域域名子站,子站间彼此相链,再一起链加主站,形成一个子站群包围主站,对提高排名相当有利。
▲尽量避免死链
十六.搜索引擎及目录免费登录入口:
G G:http://www.google.com/intl/zh-cn/add_url.html
百度:http://www.baidu.com/search/url_submit.htm
中搜:http://service.chinasearch.com.cn/netsearch/pageurlrecord/frontpageurl.jsp
网易:http://seek.163.com/cgi-bin/searcj/add_url.cgi 。。。。。。。。。。
一.SEO概念:就是搜索引擎优化,根据排名规则对网页各方面进行优化来提高网站或网页在搜索结果内的排名
二.选主机:尽量用独立IP和空间,同一IP下有多少个站点的查询网址:http://whois.webhosting.info/ip(要查询的IP号),然后便得到该ip下的所有站点,可在相关搜索引擎里输入:site:www.###.com/cn/来检测该站点是否被收录或者根本就被卦掉,最好不要使用有很多站点被封被罚的服务器。
三.选域名:在同等情况下,代表非商业性的后缀.org和.net有着比.com更高的排名优势;对于中国域的.cn和.com.cn又比.com更好。
四.关键词:最好的关键词是那些没有被广泛滥用而又很多人搜索的词。
五.关键字选择 工具推荐
google:http://adwprds/google.com/se;ect/KeywordSandbox
百度:http://www2.baidu.com/omqiore/dsqieru/php
六.关于搜索引擎对域名或网站title的字母或中文笔划的排列,总体上数字比字母靠前,yahoo.cn是按拼音顺序来排列的,
七.关键词写法:一般是"
八.关键词密度(Keyword Density),一般在1%到7%较为合适;
九.关于网站地图:一般一页不超过100个链接,多则拆分成多个网页;
工具推荐:Xenu:http://home.snafu.de/tilman/xenulink.html生成网站地图
十.对于使用frame框架做的网页要对其进行优化,使用“Noframe”标签进行优化,把NOframe标签看做是一个普通文本内容的主页。在区域中指向frame页的链接以及带有关键词的描述文本,同时在框架以外的区域也出现关键词文本。这样,搜索引擎才能正确索引框架内的信息。还有一个方法::采用iframe即内联框架(inner Frame)技术代码为:
"(iframe src=xx width=x height=x scrolling=xx frameborder=x)(/iframe)"
(meta name author----网站作者)
(meta name classification---网站所属目录类别)
(meta name generator----网站用什么样软件做的)
十一.在URL中尽量不要有session id,也不要用id作为参数名称,尽量不要用参数,如id类。。。层级链接尽量不要超过2个,这样可增加动态页面被抓取的深度和数量。
十二.高质量的链接的相关定义:
1.搜索引擎目录 中的链接以及已加入目录的网站的链接
2.与你的主题相关或互补的网站
3.PR值不低于4的网站
4.流量大、知名度高、频繁更新的重要网站(如搜索引擎新闻源)
5.具有很少导出链接的网站
6.以你的关键词在搜索结果中排名前三页的网站
7.内容质量高的网站
十三.垃圾链接的定义
1.留言簿、评论或BBS中大量发贴夹带网站链接
2.已经加入太多导出链接的网站(几十甚至上百个“友情链接中有一个你的网站)
3.加入链接基地(link farm)等链接程序,与大量会员网站自动交换链接,被搜索引擎视为典型的垃圾链接,极有可能受到惩罚或牵连。”google就会对那些使用链接程序的站点进行永久性删除)
十四.关于导出链接
1.适当增加与你网站关键词有关的行业/专业的资源性网站链接,不仅有得于丰富网站内容,也有利于提升搜索引擎对你网站的好印象。
2.但要控制数量。一般一个页面导出链接不超过15个,首页的导出链接更要控制在10个以内,多出的应单独安排在次级页面。gg认为一个页面的最大导出链接数量不应超过100个。
十五.关于内部链接
网站可以通过建立多个二级域域名子站,子站间彼此相链,再一起链加主站,形成一个子站群包围主站,对提高排名相当有利。
▲尽量避免死链
十六.搜索引擎及目录免费登录入口:
G G:http://www.google.com/intl/zh-cn/add_url.html
百度:http://www.baidu.com/search/url_submit.htm
中搜:http://service.chinasearch.com.cn/netsearch/pageurlrecord/frontpageurl.jsp
网易:http://seek.163.com/cgi-bin/searcj/add_url.cgi 。。。。。。。。。。
订阅:
博文 (Atom)
博客归档
-
▼
2009
(42)
-
▼
二月
(23)
- 怎么让flash下载站点文章
- actionscript 2.0 (this)
- ActionScript 2.0 (接口)
- actionscript2.0(类)
- actionscript2.0 (函数与方法)
- 怎样在DOS中搜索指定的文件内容
- dreamweaver cs4的破解方法
- 提示此产品的许可已停止工作,之后自动退出 解决办法
- Adobe CS3重新激活的方法
- actionscript 2.0 基础知识回顾(语法)
- ActionScript 与 JavaScript 之间的一些区别
- actionscript 2.0 基础知识回顾(创建对象)
- actionscript 2.0 基础知识回顾(加载变量)
- actionscript 2.0 基础知识回顾(数据类型)
- 获取网页元素坐标
- persits.jpeg 序列号
- javascript 学习
- scrollHeight: 获取对象的滚动高度。scrollLeft:设置或获取位于对象左边界和窗口...
- 如何用div+css布局页面
- 用javascript来实现页面的换肤功能
- CSS+div重构网页
- window.opener与window.parent
- seo
-
▼
二月
(23)
关注者
统计
