AS3小知识备忘--积少成多,置顶更新

1.如何让flash.text.TextField可编辑?

不是editable=true或readonly=false...而是type = TextFieldType.INPUT;

参考

type 属性   

type:String  [] 

语言版本 :  ActionScript 3.0 

RuntimeVersions:  AIR 1.0, Flash Player 9 

文本字段的类型。以下 TextFieldType 常数中的任一个:TextFieldType.DYNAMIC(指定用户无法编辑的动态文本字段),或 TextFieldType.INPUT(指定用户可以编辑的输入文本字段)。

默认值为 dynamic.

 

如何在文本框里添加超链接?
(1)使用文本框的htmlText属性添加必须以"event:"开头的超链接,如<a href='event:geturl|http://***/|_blank'>这儿</a>
(2)添加对TextEvent.LINK事件类型的侦听,如addEventListener(TextEvent.LINK,clickLink);
(3)"event:"后面的字符串将被包含在侦听事件的text属性里,如
private function clickLink(event:TextEvent):void
{
   var cmdArray:Array = event.text.split("|");
   if(cmdArray[0]=="geturl")
      navigateToURL(new URLRequest(cmdArray[1],cmdArray[2]);
}
PS:如果一个文本框比较奇怪,比如超链接不出现,或者对鼠标事件不响应,尽快检查一些属性设置,比如mouseEnabled等。

2.读取网页FlashVars中的参数

stage.root.loaderInfo.parameters

3.flash.net.Socket连接
如果出现"Error #2031: Socket 错误。 URL: localhost",也就是无法连接的情况,很可能是机器上IIS未设置。
简易的解决办法是下载一个EasyWebServe,设置一下主目录比如“SocketDemo\bin-debug”即可

4.stopPropagation和stopImmediatePropagation肿么回事?
都是取消事件流继续传播,不过stopImmediatePropagation会立即停止,即本节点优先级靠后的或者注册时间靠后的,都不执行了。而stopPropagation仍然会执行这些,执行完本节点的侦听后,它们都会有停止事件传播的行为。

5.ByteArray的writeBytes和readBytes总是记不清,有木有
byteArray.readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
从byteArray的byteArray.position开始,读取length个字节放到bytes里,bytes从offset开始放.(bytes的position不变,bytesArray的position增加)
byteArray.writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
从bytes的offset开始,读取length个字节放到byteArray里,byteArray从byteArray.position开始放. (bytes的position不变, byteArray的position增加)
总结: byteArray都是从byteArray.position开始(不论读写), bytes都是从offset开始(不论读写).

6.for...in,for each...in总是记不清,有木有
for……in和for each……in的区别在于,for……in的枚举变量代表的是键,必须要通过数据访问符[]加上这个键值,才能访问到集合成员。而for each……in的枚举变量k则直接代表集合的成员。也就是说,当程序需要使用键的信息时,用for……in;只需要访问集合成员时,使用for each……in最方便。在实践中,for each……in使用比for……in多一些。大部分情况下,我们并不需要知道成员的名字(键)。
记忆诀窍:大多时候,我们不需要知道键,只是遍历值。所以遍历值用的就是多的那一个,for each in比for in多一个单词。。。。也就是说,长的那个句式更常用一些。

7.将字符串中的双引号改为单引号??
str.replace(new RegExp("\"","g"),"'");

8.MouseOver具有冒泡能力,而RollOver没有,这个是两者最直接的区别

9.localToGlobal()和globalToLocal()
注意,由于元件的坐标系是自身容器,所以必须用元件的parent来调用

10.localX,stageX,mouseX
localX和stageX是MouseEvent的属性,mouseX是DisplayObject的属性.localX是鼠标点击的可视对象的内部坐标;mouseX则不需要鼠标单击,只需鼠标移动,移到哪个可视对象的哪个位置,就得到哪个可视对象的内部坐标。如果MC里没有子显示对象时,locaX与mouseX是相等的,如果有子显示对象时,鼠标移动到子显示对象上时,localX就会是子显示对象的mouseX.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值