flash+xml 相册, 如何用AS3 代码 使得加载的图片自适应大小????

happypolo 2008-08-29 03:06:52
flash+xml 相册; 照片全部在 xml 中定义;

因读取的是本地机器上的数码照片2400*1200 ; 懒得缩放图片大小,太大,在flash 中幻灯播放时图片显示不全;

请问 在AS3 中能否代码实现加载照片时,自动适应flash 场景大小????

...全文
2497 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
dw1112233 2010-01-14
  • 打赏
  • 举报
回复
還有你要設置下stageWidth=你舞臺的寬度 stageHeight=你舞臺的高度
dw1112233 2010-01-14
  • 打赏
  • 举报
回复
思路是比較載入圖片的MC與舞臺大小比較 如果寬不等於舞臺大小就讓寬等於舞臺大小 讓后高等比例縮放 然後再比較高 如果高依然大於舞臺高度 就讓高度等於舞臺高度 然後寬度等比例縮放 我沒看你的代碼 所以我貼的代碼直接引用可能無效 請根據你自己代碼做相應修改
dw1112233 2010-01-14
  • 打赏
  • 举报
回复
function farmtSize(target_mc,w,h)/定義載入圖片的MC等比例縮放/
{
w=w || stageWidth;
h=h || stageHeight;
trace("fsize start:"+target_mc+":to "+w+"*"+h);
var margin=0;

if(target_mc._width!=w){
var bl=target_mc._width/(w-margin);
//trace("w bl:"+bl)
target_mc._width=w-margin;
target_mc._height/=bl;
}
if(target_mc._height>h){
var bl=target_mc._height/(h-margin);
//trace("h bl:"+bl)
target_mc._height=h-margin;
target_mc._width/=bl;
}
target_mc._y=(h-target_mc._height)/2;

trace("fsize over:"+target_mc+":to "+target_mc._width+"*"+target_mc._height);
}
username0000 2009-12-25
  • 打赏
  • 举报
回复
我是要做一个FLASH的轮播效果但是吧 FLASH里的图片不能够自适应FLASH窗口的大小
username0000 2009-12-25
  • 打赏
  • 举报
回复
同求解
qdots 2008-09-24
  • 打赏
  • 举报
回复
因读取的是本地机器上的数码照片2400*1200 ; 懒得缩放图片大小,太大,在flash 中幻灯播放时图片显示不全;

请问 在AS3 中能否代码实现加载照片时,自动适应flash 场景大小????


没有自动适应flash 场景大小的,主要是根据场景的宽或高进行等比例缩放.
CDSoftwareWj 2008-09-24
  • 打赏
  • 举报
回复
关注!!
happypolo 2008-09-22
  • 打赏
  • 举报
回复
ding ~~~~~~~~~~~
jayson020 2008-09-14
  • 打赏
  • 举报
回复
我也下了这个xml相册,我想把它发布为exe文件,但是发布之后却显示不了图片,应该怎么修改,使得它在发布为exe后可以显示图片???
请大家指点一下了。。。谢谢。
happypolo 2008-09-02
  • 打赏
  • 举报
回复
我下载的原码,下载地址:

http://www.sinker.cn/html/down/galley2/20080625/1143.shtml



因读取的是本地机器上的数码照片2400*1200 ; 懒得缩放图片大小,太大,在flash 中幻灯播放时图片显示不全;

请问 在AS3 中能否代码实现加载照片时,自动适应flash 场景大小????

请知道的帮助弄哈???

要怎么改!!!
happypolo 2008-09-02
  • 打赏
  • 举报
回复
第2针:

function readData() {
menuArry = [];
categoryArry = [];
_global.menuLen = category[0].menu.length;
for (var _loc2 = 0; _loc2<menuLen; ++_loc2) {
menuArry[_loc2] = [];
categoryArry[_loc2] = [];
imgArryLen = category[0].menu[_loc2].img.length;
categoryArry[_loc2][0] = category[0].menu[_loc2].title;
for (var _loc3 = 0; _loc3<imgArryLen; ++_loc3) {
menuArry[_loc2][_loc3] = [];
menuArry[_loc2][_loc3][0] = category[0].menu[_loc2].img[_loc3].sImgRoute;
menuArry[_loc2][_loc3][1] = category[0].menu[_loc2].img[_loc3].dImgRoute;
menuArry[_loc2][_loc3][2] = category[0].menu[_loc2].img[_loc3].comment;
}
// end of for
}
// end of for
}
// End of the function
function makeList() {
list_set.list_box.list_mot._visible = false;
list_set.mask._width = list_set.area._width=maskW;
list_set.mask._height = list_set.area._height=maskH;
list_set.list_box.setMask(list_set.mask);
if (menuLen/colNum>listRowNum) {
list_set.scroll._visible = true;
} else {
list_set.scroll._visible = false;
}
// end else if
for (var _loc2 = 0; _loc2<menuLen; ++_loc2) {
mc = list_set.list_box.list_mot.duplicateMovieClip("list_mot"+_loc2, _loc2);
mc.savex = colSpace*Math.floor(_loc2%colNum);
mc._x = colSpace*Math.floor(_loc2%colNum)+20;
mc._y = rowSpace*Math.floor(_loc2/colNum);
mc.bar.bar_mc._width = barWidth;
mc.bar.bar_mc._height = barHeight;
mc.list_mc.txt.text = categoryArry[_loc2][0];
mc.list_mc.txt.autoSize = "left";
mc.no = _loc2;
mc.age = -1*_loc2;
menuBarCtrl(mc, 100, 0, mc.savex, 0);
mc.onRollOver = function() {
mc.age = 0;
menuBarCtrl(this, 100, 100, this.savex, 100);
};
mc.onRollOut = mc.onReleaseOutside=function () {
mc.age = 0;
if (titleNum != this.no) {
menuBarCtrl(this, 100, 0, this.savex, 0);
} else {
menuBarCtrl(this, 100, 100, this.savex, 100);
}
// end else if
};
mc.onRelease = function() {
titleNum = this.no;
if (titleNum != savetitleNum) {
menuBarCtrl(this._parent["list_mot"+savetitleNum], 100, 0, this._parent["list_mot"+savetitleNum].savex, 0);
duplicateImg(titleNum);
titleFunc(titleNum);
}
// end if
};
}
// end of for
}
// End of the function
happypolo 2008-09-02
  • 打赏
  • 举报
回复
部分AS代码,但不能实现自适应场景大小

function parseData(node) {
var _loc14 = node.nodeType;
if (_loc14 == 3) {
return (node.nodeValue);
} else {
var _loc3 = new Array();
var _loc11 = node.attributes;
for (var _loc12 in _loc11) {
_loc3[_loc12] = _loc11[_loc12];
}
// end of for...in
var _loc9 = node.childNodes;
var _loc10 = _loc9.length;
for (var _loc5 = 0; _loc5<_loc10; ++_loc5) {
var _loc8 = _loc9[_loc5];
var _loc4 = parseData(_loc8);
var _loc1;
if (typeof (_loc4) == "string") {
_loc1 = "#CDATA";
} else {
_loc1 = _loc8.nodeName;
}
// end else if
if (_loc3[_loc1]) {
_loc3[_loc1].push(_loc4);
continue;
}
// end if
for (var _loc2 = _loc5; _loc2<_loc10; ++_loc2) {
var _loc6 = _loc9[_loc2];
var _loc7 = _loc6.nodeName;
if (_loc1 == _loc7) {
_loc3[_loc1] = new Array();
_loc3[_loc1].push(_loc4);
break;
}
// end if
}
// end of for
if (!_loc3[_loc1]) {
_loc3[_loc1] = _loc4;
}
// end if
}
// end of for
return (_loc3);
}
// end else if
}
// End of the function
function loadXML() {
link_xml = new XML();
link_xml.ignoreWhite = true;
link_xml.onLoad = function(success) {
if (success == true) {
category = parseData(this).category;
gotoAndPlay(2);
}
// end if
};
link_xml.load("info.xml");
}
// End of the function
stop();
System.useCodepage = true;
Stage.scaleMode = "noScale";
loadXML();
fscommand("allowScale", true);


lsj070599 2008-09-01
  • 打赏
  • 举报
回复
只能是缩放加载器或容器大小.

1. 缩放容器大小:
图片所在的容器设置scaleX, scaleY.

2. 用Loader加载图片,可以设置
content.width
content.height
BlueGhostFire 2008-08-30
  • 打赏
  • 举报
回复
在加载时.监听一下.
Event.INIT (Event.COMPLETE 也可以试一下)
事件.
在这个事件里,去设置一下对象的长度属性.

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧