本来就只是一个url的写法的问题
尝试了一下:
程序代码
on (release) {
a = "a.html#flag";
getURL(a, "_self");
}
结果传到网页,网址变成a.html,没有后面那段了
以为是ie的问题,后来怀疑是否url的问题,也许应该换个写法:
程序代码
on (release) {
a = escape("a.html#flag");
getURL(a, "_self");
}
这个方法就可以,把url先处理一下就可以了
补充蓝色经典内的回答:
你这个方法只能解决部分锚点的问题,无法完美解决。
如果是跳转到当前页面的某个锚点的时候,这个方法会重新加载页面,再跳转到某个锚点。无法实现无刷新跳转。
要想实现无刷新锚点跳转,用fscommand+js的可能可以实现。
flash按钮代码:
程序代码
on (release) {
fscommand("anchor","#flag");
}
按钮ID,name为button。
添加到页面中<head></head>的JS代码:
程序代码
<script language=javascript>
function button_DoFSCommand(command,args)
{if(command == "anchor"){
window.location.href=args;}
}
</script>
<SCRIPT LANGUAGE=VBScript>
Sub button_FSCommand(ByVal command, ByVal args)
call button_DoFSCommand(command, args)
end sub
</SCRIPT>
允许跨域数据加载
当 Flash 文档试图访问另一个域中的数据时,Flash Player 将自动试图从该域加载策略文件。如果试图访问数据的 Flash 文档所在的域包括在该策略文件中,则数据将自动成为可访问数据。
策略文件必须命名为 crossdomain.xml,并且可以驻留在服务器的根目录和其它目录之中,该服务器提供具有其它 ActionScript 的数据(请参见关于自定义策略文件位置)。只有在通过 HTTP、HTTPS 或 FTP 进行通信的服务器上,策略文件才起作用。策略文件特定于它所驻留的服务器的端口和协议。
例如,位于 https://www.macromedia.com:8080/crossdomain.xml 的策略文件只适用于在端口 8080 通过 HTTPS 对 www.macromedia.com 进行的数据加载调用。
此规则的例外情况是,使用 XMLSocket 对象连接到另一个域中的套接字服务器。如果是这种情况,运行于与套接字服务器所在的同一个域中端口 80 上的 HTTP 服务器必须提供该方法调用的策略文件。
XML 策略文件包含单个 <cross-domain-policy> 标签,该标签又包含零个或多个 <allow-access-from> 标签。每个 <allow-access-from> 标签包含一个属性 domain,该属性指定一个确切的 IP 地址、一个确切的域或一个通配符域(任何域)。通配符域由单个星号 (*)(匹配所有域和所有 IP 地址)或后接后缀的星号(只匹配那些以指定后缀结尾的域)表示。后缀必须以点开头。但是,带有后缀的通配符域可以匹配那些只包含后缀但不包含前导点的域。例如,foo.com 可以看作是 *.foo.com 的一部分。IP 域规范中不允许使用通配符。
如果您指定了一个 IP 地址,则将只向使用 IP 语法从该 IP 地址(例如 http://65.57.83.12/flashmovie.swf )加载的 SWF 文件授予访问权限,而不向使用域名语法加载的 SWF 文件授予访问权限。Flash Player 不执行 DNS 解析。
下面的示例显示一个策略文件,该策略文件允许从 foo.com 上的 Flash 文档访问来自 foo.com、www.friendOfFoo.com、*.foo.com 和 105.216.0.40 的 Flash 文档:
<?xml version="1.0"?>
<!-- http://www.foo.com/crossdomain.xml-->
<cross-domain-policy>
<allow-access-from domain="www.friendOfFoo.com" />
<allow-access-from domain="*.foo.com" />
<allow-access-from domain="105.216.0.40" />
</cross-domain-policy>
您也可以允许访问来自任何域的文档,如下面的示例所示:
<?xml version="1.0"?>
<!-- http://www.foo.com/crossdomain.xml-->
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
每个 <allow-access-from> 标签还具有可选的 secure 属性。secure 属性默认为 true。如果您的策略文件在 HTTPS 服务器上,并且要允许 HTTP 服务器上的 SWF 文件从 HTTPS 服务器加载数据,则可以将此属性设置为 false。
将 secure 属性设置为 false 可能会危及 HTTPS 提供的安全性。
如果您正在下载来自 HTTPS 服务器的 SWF 文件,而加载它的 SWF 文件在 HTTP 服务器上,则您需要为 <allow-access-from> 标签添加 secure="false" 属性,如下面的代码所示:
<allow-access-from domain="www.foo.com" secure="false" />
不包含任何 <allow-access-from> 标签的策略文件相当于服务器上没有策略。
\\\\\\\\\\\\\\\
To make the background area of a TextArea component transparent, then you will want to use the following ActionScript.
_global.styles.TextArea.backgroundColor = undefined;
by Jen deHaan
还有这样可以使背景透明...
不过只能100%透明,不能调节透明度
\\\\\\\\\\\\\\\\\
用这个就连边界也消失透明了:
InstanceNameOfTextArea.depthChild0._alpha = 0;
注:本代码参考网上的loading代码,出处本人未知
本人仅修改并测试使得其使用于任何一个loading调用
function show_loading(loader) {
var myLoading:MovieClip;
var loadInfo:MovieClip;
var _lineBgcolor = "0x666666";
var _lineColor = "0x0000FF";
var _lineLen:Number = 200;
var _lineH:Number = 3;
var _txtColor;
var _txtAlign:String = "center";
var tb:Number;
var txtFormat:TextFormat = new TextFormat("Arial", null, 0x000000, true);
//建立一个最高层做loading
myLoading = _root.createEmptyMovieClip("myLoading", _root.getNextHighestDepth());
//描绘进度条
loadInfo = myLoading.createEmptyMovieClip("line", 10);
loadInfo.lineStyle(1, _lineColor, 20);
loadInfo.moveTo(0, 0);
loadInfo.lineTo(_lineLen, 0);
loadInfo.lineTo(_lineLen, _lineH);
loadInfo.lineTo(0, _lineH);
loadInfo.lineTo(0, 0);
//进度显示文本 , 设置进度条的位置(居中于主场景)
loadInfo.createTextField("txt", 30, 0, 0, _lineLen, 22);
loadInfo.txt.autoSize = _txtAlign;
loadInfo._x = (Stage.width-_lineLen)/2;
loadInfo._y = Stage.height/2;
//获得影片大小并stop,再onEnterFrame
loader.stop();
tb = loader.getBytesTotal();
//trace("tb:"+tb);
myLoading.onEnterFrame = function() {
if (tb<=0) {
//有时候会在上面得到tb为0,需要判断一下
tb = loader.getBytesTotal();
//trace("tb:"+tb);
}
var lb:Number = loader.getBytesLoaded();
var percent:Number = Math.round(lb/tb*100);
//trace("lb:"+lb+" / tb:"+tb);
loadInfo.txt.text = percent+"%";
loadInfo.txt.setTextFormat(txtFormat);
loadInfo.lineStyle(_lineH, _lineBgcolor, 10);
loadInfo.moveTo(0, _lineH/2);
loadInfo.lineTo(percent*_lineLen/100, _lineH/2);
if (percent == 100) {
loader.play();
delete this.onEnterFrame;
this.removeMovieClip();
//把本层loading删除
}
};
}
用法:
在第一帧
show_loading(_root);
或者:
b_mc.loadMovie("3.jpg");
show_loading(b_mc);






