`
- 浏览:
242500 次
- 性别:
- 来自:
ph
-
-
【精确获取某行的索引值】
-
在 x 和 y 参数指定的位置返回从零开始的行索引值
-
TextField.getLineIndexAtPoint(x:Number, y:Number):
int
-
field.getLineIndexAtPoint(mouseX, mouseY);
-
-
【获取指定索引值处的字符所在行的行索引值】
-
TextField.getLineIndexOfChar(charIndex:
int
):
int
-
-
【获取指定行的字符数】
-
TextField.getLineLength(lineIndex:
int
):
int
-
-
【获取指定索引值处的行所包含的字符】
-
TextField.getLineText(lineIndex:
int
):String
-
-
【获取指定行索引所在行的第一个字符的索引值】
-
TextField.getLineOffset(lineIndex:
int
):
int
-
-
【获取指定文本行的度量信息】
-
TextField.getLineMetrics(lineIndex:
int
):TextLineMetrics
-
TextLineMetrics类包含文本字段中某行文本的文本位置和度量值的相关信息,帮助文档里有深入的图解.
-
-
【获取指定索引处的字符所在段落内的第一个字符索引值】
-
如果给定一个字符索引,则返回同一段落中第一个字符的索引
-
TextField.getFirstCharInParagraph(charIndex:
int
):
int
-
-
【获取指定索引处的字符所在段落内的字符数】
-
TextField.getParagraphLength(charIndex:
int
):
int
-
-
【替换所选文字】
-
TextField.replaceSelectedText(value:String):
void
-
可以使用此方法插入和删除文本而不破坏其余文本的字符和段落格式.
-
-
【替换指定范围的文本】
-
TextField.replaceText(beginIndex:
int
, endIndex:
int
, newText:String):
void
-
注意: 如果对文本字段应用了样式表,则该方法不起作用
-
-
【Timer计时器的使用】
-
var timer:Timer =
new
Timer(delay:Number, repeatCount:
int
=
0
);
-
timer.addEventListener(TimerEvent.TIMER, onTimer);
-
timer.start();
-
private
function onTimer(event:TimerEvent):
void
{
-
-
}
-
-
【以指定方向和速度移动元件】
-
speed: 目标速度
-
radians: speed与x轴的夹角,弧度
-
vx = Math.cos(radians) * speed;
-
vy = Math.sin(radians) * speed;
-
-
【缓动动画算法】
-
targetX,targetY: 目标坐标;
-
easingSpeed: 每次移动分数,范围
0
到
1
;
-
var vx:Number = (targetX - sprite.x) * easingSpeed;
-
var vy:Number = (targetY - sprite.y) * easingSpeed;
-
sprite.x += vx;
-
sprite.y += vy;
-
注意: 在非常逼近目标点时,往往找出通往目标点的距离,如果其值少于特定值,就应该停止该缓动.
-
-
【模拟弹簧往复运动算法】
-
五个变量: targetX(目标点的x坐标),sprite.X(物体的x坐标),vx(水平速度),ax(水平加速度),k(弹簧强度)
-
已知: targetX(目标点的x坐标),k(弹簧强度)
-
var ax:Number = (targetX - sprite.x) * k;
-
vx += ax;
-
sprite.x += vx;
-
注意: 这里只是水平方向的情形,也可以推广到垂直方向以及水平垂直一起来的情形
-
-
【模拟单摆运动】
-
四个变量: sprite.x(物体的x坐标),centerX(中心位置的x坐标),angle(弧度),radius(摆动的振幅,也就是摆动的范围)
-
sprite.x = centerX + Math.sin(angle) * radius;
-
angle +=
0.05
;
-
-
【模拟阻尼运动】
-
六个变量: targetX(目标点的x坐标),sprite.X(物体的x坐标),vx(水平速度),ax(水平加速度),k(弹簧强度),damp(阻尼系数)
-
已知: targetX(目标点的x坐标),k(弹簧强度)
-
var ax:Number = (targetX - sprite.x) * k;
-
vx += ax;
-
sprite.x += vx;
-
vx *= damp;
-
注意: 这里只是水平方向的情形,也可以推广到垂直方向以及水平垂直一起来的情形.
-
这种原理可以推广到其它属性,如scaleX:
-
scaleVel += (targetScale - sprite.scaleX) * k;
-
sprite.scaleX += scaleVel;
-
scaleVel *= damp;
-
-
【计算两点间的角度】
-
Math.atan2(y:Number, x:Number):Number
-
y: 两点间的垂直距离
-
x: 两点间的水平距离
-
返回一个以弧度为单位的角度,返回值介于正PI和负PI之间.
-
-
【让物体指着鼠标(跟随眼睛)】
-
var dx:Number = mouseX - sprite.x;
-
var dy:Number = mouseY - sprite.y;
-
var radians:Number = Math.atan2(dy, dx);
-
sprite.rotation = radians *
180
/ Math.PI;
-
-
【联结字符串时需要注意的地方】
-
var result:String =
2
+
6
+
"a"
;
-
trace(result);
-
var result:String =
"a"
+
2
+
6
;
-
trace(result);
-
var result:String =
"a"
+ (
2
+
6
);
-
trace(result);
-
-
【查找匹配的字符串】
-
使用String.indexOf(val:String, startIndex:Number =
0
):
int
-
返回指定子字符串的第一个匹配项的索引,没有匹配就返回-
1
-
查找所有匹配的字符串:
-
var index:
int
= -
1
;
-
while
((index = myString.indexOf(
"val"
, index +
1
)) != -
1
) {
-
trace(
"结果:"
+ index);
-
}
-
使用String.lastIndexOf(val:String, startIndex:Number =
0x7FFFFFFF
):
int
-
返回指定子字符串的最后一个匹配项的位置,没有匹配就返回-
1
-
var index:
int
= myString.length;
-
while
((index = myString.lastIndexOf(
"val"
, index -
1
)) != -
1
) {
-
trace(
"结果:"
+ index);
-
}
-
注意: indexOf()和lastIndexOf()方法都是区分大小写的.想把大小写都查找出来的话,可以结合String.toLowerCase()和String.toUpperCase()方法先把字符串一起转为小写或大写再进行查找.
-
-
【提取子字符串】
-
String.substr(startIndex:Number =
0
, len:Number =
0x7fffffff
):String
-
String.substring(startIndex:Number =
0
, endIndex:Number =
0x7fffffff
):String
-
String.slice(startIndex:Number =
0
, endIndex:Number =
0x7fffffff
):String
-
substr()第一个参数可以是负值,表示索引值是从字符串尾端算过来,-
1
是最后一个字符;
-
substring()和slice()差别在于substring()只接受正索引值,而把负值作为
0
处理.另外,如果endIndex小于startIndex,substring()方法在执行前,会自动将其调换过来,总是使用两个参数中较小的值作为起始索引.
-
slice()方法可接受startIndex和endIndex为负值,而把负值表示为从字符串的尾端算回来,如果endIndex小于startIndex,slice()方法会返回空字符串.
-
-
【以指定模式拆分字符串】
-
String.split(delimiter:*, limit:Number =
0x7fffffff
):Array
-
-
【替换指定的字符串】
-
使用String.replace(pattern:*, repl:Object):String
-
可以这样来替换所有指定的字符串: myString.split(
"a"
).join(
"b"
);
-
-
【按单词或单个字母逆转字符串】
-
1
. 把字符串切割使用String.split()方法成一个数组:对单词而言,以空格作为分界符,对字母而言,以空字符(
""
)作为分界符;
-
2
. 使用Array.reverse()方法对数组进行逆转;
-
3
. 使用Array.join()方法重新组合为字符串:对单词而言,以空格(
" "
)作为联结符,对字母而言,以空字符(
""
)作为联结符;
-
-
【使用SharedObject及捕获异常】
-
var so:SharedObject = SharedObject.getLocal(
"so"
);
-
so.data.userName =
"Youthoy"
;
-
try
{
-
var flushResult:String = so.flush(
500
*
1024
);
-
-
if
(flushResult == SharedObjectFlushStatus.PENDING) {
-
-
so.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
-
}
else
if
(flushResult == SharedObjectFlushStatus.FLUSHED) {
-
-
}
-
}
catch
(e:Error) {
-
-
-
Security.showSettings(SecurityPanel.LOCAL_STORAGE);
-
}
-
-
function onStatus(event:NetStatusEvent):
void
{
-
if
(event.info.code ==
"SharedObject.Flush.Success"
){
-
-
}
else
if
(event.info.code ==
"SharedObject.Flush.Failed"
){
-
-
}
-
-
so.removeEventListener(NetStatusEvent.NET_STATUS, onStatus);
-
}
-
-
【向LSO储存对象时需要注意】
-
LSO使用二进制的AMF(Action Message Format)对一个对象进行编码.当你在LSO储存类对象时,该对象会编码成包含内容属性的普通对象.于是,当你试着从共享对象里读取该对象时,无法被读成某类的对象,因为没有类型数据.要克服这个限制,使用flash.net.registerClassAlias()方法.
-
任何影片中,只要从共享对象读取出自定义对象数据,自定义类就必须注册别名,而且调用registerClassAlias()方法时必须在SharedObject.getLocal()方法被调用之前.
-
-
【要相同域名内的两个影片可以存取相同LSO】
-
首先LSO是储存在以下目录下:
-
C:\Documents and Settings\[user name]\Application Data\Macromedia\Flash Player\#SharedObjects
-
例如,如果来自于http:
-
C:\Documents and Settings\[user name]\Application Data\Macromedia\Flash Player\#SharedObjects\[random directory name]\riahome.cn\youthoy\movie.swf\example.sol
-
如果在这个movie.swf里的代码是这样的: var example:SharedObject = SharedObject.getLocal(
"example"
,
"/"
); 也就是使用了选用的本地路径参数,则LSO会储存在以下路径,注意到与以上路径少了
"youthoy\movie.swf"
:
-
C:\Documents and Settings\[user name]\Application Data\Macromedia\Flash Player\#SharedObjects\[random directory name]\riahome.cn\example.sol
-
以此方法建立的LSO,可以由相同域的其它Flash影片用以下程序来读取:
-
var example:SharedObject = SharedObject.getLocal(
"example"
,
"/"
);
-
再看一个例子:
-
有两个Flash影片movieOne.swf和movieTwo.swf都位于同一域(http:
-
/
-
/youthoy
-
/youthoy/firstGroup
-
而movieTwo.swf可以用下列任何本地路径建立和读取LSO:
-
/
-
/youthoy
-
/youthoy/secondGroup
-
因此,如果你想要两个影片都可以读取相同LSO,当你调用getLocal()方法时,必须指定影片共享的两个本地路径之一(/或/youthoy).
-
-
【URLLoader.dataFormat的三种类型】
-
URLLoader.dataFormat的可选值是:
-
flash.net.URLLoaderDataFormat.BINARY
-
flash.net.URLLoaderDataFormat.TEXT
-
flash.net.URLLoaderDataFormat.VARIABLES
-
当dataFormat是BINARY时,URLLoader.data属性就是flash.utils.ByteArray类型;
-
当dataFormat是TEXT时,URLLoader.data属性就是String类型;
-
当dataFormat是VARIABLES时,uRLLoader.data属性就是Object类型.
-
-
【在XML内使用动态数据】
-
把变量放在大括号({和})内:
-
var userName:String =
"Youthoy"
;
-
var myXML:XML = <person><userName>{userName}</userName></person>;
-
-
【新增一个节点元素】
-
-
var example:XML = <person/>;
-
example.father = <father/>;
-
trace(example);
-
-
-
-
-
-
-
-
var example:XML = <person/>;
-
example.father =
""
;
-
trace(example.toString());
-
-
-
-
-
-
-
-
var example:XML = <person/>;
-
var id:
int
=
10
;
-
example[
"user"
+ id] =
""
;
-
trace(example);
-
-
-
-
-
-
-
-
-
-
-
-
【新增属性】
-
var example:XML = <person/>;
-
example.element =
""
;
-
example.element.
@name
=
"Youthoy"
;
-
example.element.@[
"bad-variable-name"
] =
"yes"
;
-
example.element.
@other
= [
"riahome.cn"
, undefined,
true
,
44
,
null
];
-
var id:
int
=
44
;
-
example.element.@[
"user"
+ id] =
"love"
;
-
trace(example);
-
-
-
-
-
-
-
-
【向XML插入文字元素和节点元素】
-
-
var example:XML = <person/>;
-
example.two =
""
;
-
example.insertChildBefore(example.two, <one/>);
-
example.insertChildBefore(example.two,
"在two节点前插入文字"
);
-
example.insertChildAfter(example.two, <three/>);
-
example.prependChild(<start/>);
-
example.appendChild(<end/>);
-
example.start =
"start内容"
;
-
trace(example);
-
-
-
-
-
-
-
-
-
-
-
-
-
【把XML实例的内容属性转换为任何可以转换成字符串的内容】
-
-
var example:XML = <person/>;
-
example.one =
"one"
;
-
example.two =
new
URLLoader();
-
example.three =
new
Sprite();
-
example.four =
new
Boolean;
-
example.five =
new
Number();
-
example.six =
new
String();
-
example.seven = {a:
"Youthoy"
, b:
true
, c:undefined};
-
example.eight = [
"three"
, undefined,
true
,
44
,
null
];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
【对XML属性层层递归的算法】
-
var example:XML = <menu>
-
<menuitem label=
"File"
>
-
<menuitem label=
"New"
/>
-
<menuitem label=
"Save"
/>
-
</menuitem>
-
<menuitem label=
"Help"
>
-
<menuitem label=
"About"
/>
-
</menuitem>
-
</menu>;
-
walk(example);
-
function walk(node:XML):
void
{
-
for
each(var element:XML in node.elements()) {
-
trace(element.
@label
);
-
walk(element);
-
}
-
-
【读取文字节点及其值】
-
var example:XML = <menu>
-
My name is Youthoy.
-
<myName>Youthoy</myName>
-
</menu>;
-
example.text();
-
example.myName.toXMLString();
-
-
example.myName.toString();
-
example.myName.text();
-
example.myName;
-
-
【递归元素属性时读取属性名与其值】
-
var example:XML = <person name=
"Youthoy"
age=
"21"
/>;
-
for
each(var i:XML in example.attributes()) {
-
trace(i.name() +
"="
+ i);
-
}
-
-
-
-
-
-
另类方法:
-
var example:XML = <person name=
"Youthoy"
age=
"21"
/>;
-
trace(example.@*[
1
]);
-
-
【不论层级地访问整个XML中指定的节点或属性】
-
使用后代存取器运算符..
-
例子
1
(对于节点元素):
-
var example:XML = <a>
-
<z>I am z.</z>
-
<b>
-
<c></c>
-
<z>I am z.</z>
-
</b>
-
</a>;
-
trace(example..z.text());
-
例子
2
(对于属性):
-
var example:XML = <person>
-
<a>
-
<item name=
"Youthoy"
age=
"21"
/>
-
</a>
-
<item name=
"Jimpa"
age=
"21"
/>
-
</person>
-
trace(example..
@name
);
-
-
【删除节点元素,文字节点以及属性】
-
使用delete对单一项进行删除,要删除整个XMLList可以使用
for
循环以倒序形式进行删除,以避免迭代时需要改变数组索引问题.
-
-
【搜索XML的高级应用】
-
使用术语过滤.(condition),可结合正则表达式来使用.
-
例子:
-
var example:XML = <foodgroup>
-
<fruits>
-
<fruit color=
"red"
>Apple</fruit>
-
<fruit color=
"orange"
>Orange</fruit>
-
<fruit color=
"green"
>Pear</fruit>
-
<fruit color=
"red"
>Watermelon</fruit>
-
</fruits>
-
<vegetables>
-
<vegetable color=
"red"
>Tomato</vegetable>
-
<vegetable color=
"brown"
>Potato</vegetable>
-
<vegetable color=
"green"
>Broccoli</vegetable>
-
</vegetables>
-
</foodgroup>;
-
trace(example..*.(hasOwnProperty(
"@color"
) &&
@color
==
"red"
));
-
-
-
-
-
-
-
-
-
【CDATA(Character Data)标签】
-
<![CDATA[]]>,必须大写.如果<![CDATA[[]]]>这样的话,它会告诉你语法错误的.
-
-
【一些名词】
-
RPC:
-
全称: Remote Procedure Call,台湾的朋友称其为: 远端程序呼叫
-
SOAP:
-
全称: Simple Object Access Protocol,台湾的朋友称其为: 简单物体存取协定
-
WSDL:
-
全称: Web Service Description Language,台湾的朋友称其为: web service描述语言
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
AS3.0编程中的100个小技巧,非常有用。
### VB使用的10个小技巧详解 #### 1. 如果一行程序太长,能否换行? 在Visual Basic(简称VB)编程环境中,如果遇到一行代码过长的情况,可以通过在需要换行的位置后面添加下划线“_”的方式进行换行。这种方法...
以上知识点是AS3.0小游戏开发的核心组成部分,通过学习和实践,初学者能够逐步掌握开发技巧,创作出自己的游戏作品。压缩包中的17个AS3.0源程序可以作为实例,帮助初学者通过实际操作理解这些概念,进一步提升编程...
### AS3常用的8个小技巧 #### 1. 显示Flash元素的位置 在AS3中,可以利用对象的属性来获取或设置Flash元素的位置。例如,`x` 和 `y` 属性分别表示元素在其父容器中的水平位置和垂直位置。通过这些属性可以方便地...
**JDeveloper 使用小技巧** JDeveloper 是一款强大的集成开发环境(IDE),主要用于Oracle Application Framework (OAF) 和其他Java相关项目的开发。对于初学者来说,掌握一些实用的JDeveloper使用技巧能够极大地...
在这个“VBA小技巧”主题中,我们将深入探讨几个实用的VBA技巧,帮助你提升在Excel、Access以及它们与VB之间的协同工作的效率。 1. **单元格位移**: 在VBA中,我们可以使用Range对象来操作Excel中的单元格。例如...
... ... 此函数用于从指定的文件中读取数据。 ... $fd = fopen($file_name, 'r');...以上就是从提供的PHP代码片段中总结出来的小技巧和功能说明。这些技巧可以帮助开发者更好地理解和应用PHP语言,提高开发效率。
根据提供的文件信息,我们可以总结出以下10个Visual Basic(简称VB)的小技巧,这些技巧非常适合初学者掌握和应用。 ### 1. 图片移动小技巧 在VB中,可以通过编写简单的子程序来实现控件(如图片框)的位置移动。...
以下是14个DB2使用的小技巧: 1. **查看本地节点目录**:在命令行输入 `db2 list node directory`,这将显示已注册的所有本地节点信息。 2. **编目TCP/IP节点**:使用 `db2 catalog tcpip node remote server os...
VB 编程小技巧汇总是指在 Visual Basic 编程中的一些小技巧和经验总结,本文总结了五个小技巧,分别是如何避免程序重复执行、如何让一个 app 永远保持在最上层、表单配置视窗和解析度、连续变量的声明和正确的除错...
以下是针对GCC使用的部分技巧的详细介绍: 1. 打印GCC预定义的宏信息 使用“gcc -dM -E - ”命令可以显示出GCC预定义的宏信息。这在编写平台特定代码时特别有用。选项“-dM”告诉GCC生成所有预定义宏,而“-E”...
这里`Chinese_PRC_Stroke_ci_as`是中文排序规则,`ci`代表不区分大小写,`as`表示对重音不敏感。 2. **数据库加密**: SQL Server提供了`ENCRYPTBYKEY`和`DECRYPTBYKEY`函数用于加密和解密数据。不过在描述中提到的...
学习者能了解到AS3.0在处理二维网格和人工智能算法方面的应用。 5. **飞机射击游戏**:这类游戏涉及子弹发射、敌机移动轨迹、碰撞检测等元素。开发者可以从源码中学习如何使用AS3.0处理复杂的动画序列和事件监听。 ...
AS测试小游戏是一款基于ActionScript(AS)开发的互动游戏,主要目标是帮助用户检验和提升他们的编程技能,尤其是ActionScript的运用能力。ActionScript是一种基于ECMAScript的脚本语言,广泛应用于Adobe Flash平台...
### 电子表格小技巧:根据颜色进行求和 在日常工作中,我们经常需要用到电子表格来处理数据,而Excel作为一款强大的工具,在数据管理和分析方面有着...希望这个小技巧能帮助你在日常工作和学习中更加高效地使用Excel。
这个压缩包包含了一个使用AS3编写的Flash小游戏——“接金币”项目,提供完整的源代码,对于学习和理解AS3编程以及Flash游戏开发具有很高的参考价值。 在AS3中,游戏开发通常涉及到以下几个关键知识点: 1. **基础...
### SQL语句小技巧详解 在数据库操作中,SQL(Structured Query Language)是不可或缺的工具,它用于管理和处理关系型数据库。以下是从标题、描述、标签以及部分内容中提炼出的一系列实用的SQL小技巧,旨在提升...
### RTL8019AS使用手册关键知识点 #### 一、概述 **RTL8019AS**是一款经典的以太网控制器芯片,广泛应用于嵌入式系统中实现以太网连接功能。对于初学者而言,理解和掌握RTL8019AS的工作原理与使用方法尤为重要。 ...