DIYism schooner能逆风行驶的纵帆船是生命的极好象征,贝努利效应正是化逆为顺的经典!--呆仁 收藏本站 涂鸦本站 来信本站 跟我MSN 跟我QQ GTalk 思想农业天文生物文化饮食娱乐硬件健康语言心理网络物理政治个人编程软件工具 php学习笔记
javascript学习笔记
flash学习笔记
css学习笔记
xsl学习笔记
sql学习笔记
ubuntu安装配置
centos安装配置
damnsmall安装配置
python学习笔记
呓语录
(k612)
=============================================================================================
text符号只有转化成movieclip或button符号才能取名字
=============================================================================================
flash插入网页的标准写法是用object而不是embed:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
        codebase="http://active.macromedia.com/flash7/cabs/swflash.cab#version=7,0,0,0"
        width="100" height="100"
>
<param name="movie" value="moviename.swf">
<param name="play" value="true">
<param name="loop" value="true">
<param name="quality" value="high">
</object>
=============================================================================================
System.useCodepage=true;//让unescape解析出GB编码字符
kk=unescape("%D6%D0");
System.useCodepage=false;//就在这个时候kk被转码了(GB→UTF)
kk1=unescape("%E4%B8%AD");
symbol1_txt=kk+kk1;//symbol1_txt变成了"中中"
=============================================================================================
function loadXML(src)
{
    System.useCodepage=false;//就在这个时候a.txt被转码了(GB→UTF)
    symbol1_txt=src.toString();
}
var myXML = new XML();
myXML.onData = loadXML;//load是并行的(不阻断),则必须等load完成才来触发toString输出
System.useCodepage=true;//让load以GB编码载入
myXML.load("a.txt");//只能载入文本一类的文件,binary文件内字符超出UTF范围会被错误解析(如解析成"?"等)
实际上load是触发onData再调用parseXML和onLoad(非标准xml只能载入一部分),覆载onData才能处理原始数据(如非标准xml)
=============================================================================================
xml_recv = new XML();
xml_recv.onData = parse_xml;
new XML("addr=www.diy.net")
.sendAndLoad("http://216.46.246.238/co/DomainDossier.aspx?rnd="+Math.random(),xml_recv);
function parse_xml(recv)
{
  str_recv = recv.toString();
  ...
}
上面是get方式,要post方式的话:
xml_send=new LoadVars();
xml_send.addr="www.diy.net";
//xml_send.addRequestHeader(["Referer","http://www.time.ac.cn/IMG/DigitalClock.swf"]);//伪造Referer
xml_send.sendAndLoad("http://216.46.246.238/co/DomainDossier.aspx?rnd="+Math.random(),xml_recv,"POST");
=============================================================================================
高版本里字串操作的函数都已支持多字节字符
=============================================================================================
applet,flash都不允许直接访问第三方网站(本地运行可以或用源站php代理),applet使用数字证书可以访问本地文件
不允许访问第三方网站的原因据说是为了保护大公司的内网web服务的安全,但这样一来网际很多公开的xml服务
也不能被flash直接使用了
=============================================================================================
function han()
{
  this.area="kk";
}
aObject=new han;
symbol1_txt=aObject.area;//symbol1_txt变成了"kk"
=============================================================================================
如果最后一帧没有stop();则默认循环到第一帧
=============================================================================================
脚本的执行时刻并不与输出显示时刻同步,比如某个帧的脚本只有0ms,但是flash输出显示系统刚好提取
这个特定时刻的状态显示出来,并持续一个时间间隔
=============================================================================================
当一帧的执行时间少于分配给它的时间间隔时,一帧的时间长度才是一个时间间隔,否则帧长等于实际执行时间
=============================================================================================
(在触发函数外)stop()、gotoAndPlay()和gotoAndStop()并不立即停止或跳转,而是执行完当前帧所有语句(不包
括load过程和其触发函数)后再立即(不等时间间隔,即0ms)停止或跳转,则一帧内它们写在任何位置都无所谓,
可以固定写在一帧脚本的末尾以明功能限制,或者为了避免后面的语句执行可以把后面的语句包含在另一个判断分支
=============================================================================================
(在触发函数内,如xml的load内)stop()、gotoAndPlay()和gotoAndStop(),在触发之前它们不影响触发函数外语句的执
行和帧的续行,触发函数触发后执行触发函数内所有其它语句,再等0-90ms后来停止或跳转(同时函数外帧的续行被打断),
为了避免函数外帧的续行,必须在触发函数外配合使用stop()
=============================================================================================
如果触发函数内的gotoAndPlay()在外部语句已经停在第n帧之后来到第n帧,则不会执行第n帧而是接续执行
第n+1帧,如果在之前,则打断外部帧的续行,执行第n帧并续行;如果是gotoAndStop(),在前则打断外部帧的续行
直接执行并停在第n帧,在后则什么都不干
=============================================================================================
由于gotoAndPlay()不等待时间间隔,如果没有触发过程等待时间,循环跳转将极耗资源,应如下构造循环跳转:
doOnce = setInterval(function(){gotoAndPlay(m);clearInterval(doOnce);},6000);
stop();
不能在当前帧直接使用上句(将m设为当前帧序号),因当前帧stop后被gotoAndPlay不会执行当前帧,而是跳到下帧
要当心:在一个循环中如果有触发函数,如果其触发时间加触发函数执行时间长于循环周期就会造成资源崩漏
=============================================================================================
xml的load触发函数比较奇怪,如果后面的地址固定,第一次是正常触发(访问网络),第二次及以后就不访问网络了,
而是靠等完时间间隔来触发,所以要想循环检测网络而触发则必须:
timeXml.load("http://stdtime.gov.h:13/?rnd="+Math.random());
必须传变量,用定位符#跟随机数没用
但是有极少数安全性高的网站传给它额外变量它就拒绝访问,不知道flash自身有没有方法控制?
=============================================================================================
说明书只说new Date(year, month [, date [, hour [, minute [, second [, millisecond ]]]]]),
但实际上里面的参数可以是tickcount,如time_server_cur=new Date(new Date().getTime() - Math.round(dif_loc2srv));
=============================================================================================
十六进制与十进制相互转换:
myDec=parseInt(myHex,16);
myHex=myDec.toString(16).toUpperCase();
=============================================================================================
unescape的真正反函数:
(要用System.useCodepage=true后再load)
function escape_total(str)
{
 str_esc = escape(str);
 rtn = "";
 lng = str_esc.length;
 for (i=0;i<lng;++i)
 {
  if (str_esc.charAt(i)=="%")
  {
   rtn = rtn + str_esc.substr(i,3);
   i = i + 2;
  }
  else
  {
   rtn = rtn + "%" + str_esc.charCodeAt(i).toString(16).toUpperCase();
  }
 }
 return rtn;
}
=============================================================================================
<?xml version='1.0' encoding='GB2312'?>
<ntsc>                              <!--myxml.childNodes[0].toString()-->
  <time>                            <!--myxml.childNodes[0].childNodes[0].toString()-->
    <year length="4">               <!--myxml.childNodes[0].childNodes[0].childNodes[0].toString()-->
      2005                          <!--myxml.childNodes[0].childNodes[0].childNodes[0].firstChild.nodeValue-->
    </year>
    <month>                         <!--myxml.childNodes[0].childNodes[0].childNodes[1].firstChild.nodeValue-->
      12
    </month>
    <day>27</day>
  </time>
  <time>                            <!--myxml.childNodes[0].childNodes[1].toString()-->
    <year length="4chars">          <!--myxml.childNodes[0].childNodes[1].childNodes[0].attributes.length-->
      2005
    </year>
  </time>
</ntsc>
<ntsc>                              <!--myxml.childNodes[1].toString()-->
  <time>
    <year length="4">2005</year>
  </time>
</ntsc>
调用较深的一批节点时可以用with (myxml.childNodes[0].childNodes[0]) {trace(childNodes[i].firstChild.nodeValue);}
=============================================================================================
完成类似其它语言字串替换的功能:
str.split(ss_ori).join(ss_trg);
=============================================================================================
getURL("test.php","win_pop","POST");必须使用POST才让自定义窗口名有效,会post当前所有变量及其值
getURL("javascrip:void(text1.value="jack")","_self","POST");可以执行javascript语句
为了避免提交所有变量可以用new XML().send("test.php","win_pop");或:
xml_send=new LoadVars();
xml_send.addr="www.diy.net";
xml_send.send("test.php","win_pop","POST");
=============================================================================================
flash中eval只对单个变量\对象的名称有效,对函数或表达式无效
=============================================================================================

  您的网址:(可能:)呆元:2385年04月19日(17-05-23)访客总人次:433220(自k5a1)  
Copyleft 2364-2378 DIYism
Powered by Ubuntu Server & ZPC-GX
全民备TOR 安全上网