+ -
当前位置:首页 → 问答吧 → 关于flash自适应屏幕100%和遮罩效果冲突的问题

关于flash自适应屏幕100%和遮罩效果冲突的问题

时间:2011-01-25

来源:互联网

请各位前辈指教
我做了一个flash自适应屏幕的文件,本来是可以正常运行的,但是在动画里面使用了蒙版遮罩,发现影片播放就出现问题了
遮罩的地方,也判断为画布大小产生变化,每次变换图片的时候,自适应的位置也会跟着变化,请高手帮忙看一下代码,谢谢了
swf影片里面使用了遮罩,做图片的变换效果
求助图片.jpg (57.45 KB)
2011-1-25 18:19

源文件见附件...

代码如下

//影片的相对位置#####################
import asas.*;
Stage.scaleMode = "noScale";
onResize;
Stage.align = "LT";
var casSwfXY:casSwf = new casSwf();
_root.onEnterFrame = function() {
       casSwfXY.setC(Stage.width, Stage.height, mcC);
       casSwfXY.setD(Stage.width, Stage.height, mcD);
};

Swf.as代码如下

class asas.casSwf {

       //设置下
       function setD(numW:Number, numH:Number, _mc:MovieClip) {
              _mc._x = (numW-_mc._width)/2;
              _mc._y = numH-_mc._height;
       }
       //设置中
       function setC(numW:Number, numH:Number, _mc:MovieClip) {
              _mc._x = (numW-_mc._width)/2;
              _mc._y = (numH-_mc._height)/2;
       }
}

[ 本帖最后由 ataotao 于 2011-1-25 18:19 编辑 ]

附件

求助flash自适应.rar (153 KB)

2011-1-25 18:17, 下载次数: 4

作者: ataotao   发布时间: 2011-01-25


http://www.google.com.hk/search?q=resize%20flash023&hl=zh-CN&lr=lang_zh-CN&ie=UTF-8&oe=UTF-8&client=aff-cs-gosurf
复制内容到剪贴板
代码:
package{
import flash.display.Bitmap;
    import flash.display.Sprite;
import flash.geom.Matrix;
import flash.display.Loader;
    import flash.events.Event;
    import flash.net.URLRequest;
    /**
    * ...
    * @author FLASH023
    */
    public class Main extends Sprite {
  private var loader:Loader;
  private var bg:Bitmap  ;
        public function Main():void {
   init();   
        }
  private function init():void {
   imgLoader ("image.jpg");
   stage.align = "TL";
   stage.scaleMode = "noScale";
   stage.addEventListener (Event.RESIZE, onResize);
   stage.addEventListener (Event.FULLSCREEN, onResize);
  }
  private function onResize(_evt:Event):void {
   if (bg) {
    bg.width = stage.stageWidth;
    bg.height = stage.stageHeight;
   }
  }
        private function imgLoader(_path:String ):void{
            loader = new Loader;
            loader.contentLoaderInfo .addEventListener (Event.COMPLETE , imageComplete);
            loader.load(new URLRequest (_path));
        }
        private function imageComplete(_evt:Event):void{
            bg  = _evt.target.content as Bitmap;
   onResize(null);
   addChild (bg);
            //-------------------
            loader.contentLoaderInfo .removeEventListener (Event.COMPLETE , imageComplete);
            loader = null;
        }  
    }
}
复制代码如果是AS2:
stage.align = "TL";
   stage.scaleMode = "noScale";
   stage.addEventListener (Event.RESIZE, onResize);
   stage.addEventListener (Event.FULLSCREEN, onResize);
参照以上几行改写

同类型参考帖:
http://share.zcool.com.cn/archiver/?tid-71283.html
http://flash.9ria.com/thread-43626-1-1.html
http://flash.9ria.com/viewthread.php?tid=47626&rpid=423653&ordertype=0&page=1#pid423653
http://space.flash8.net/BBS/thread-381767-1-1.html
http://flash.9ria.com/archiver/tid-43626.html
http://flash.9ria.com/viewthread.php?tid=43626&rpid=408714&ordertype=0&page=1#pid408714
http://bbs.blueidea.com/viewthread.php?action=printable&tid=2969923

作者: flash023   发布时间: 2011-01-26

版大,我的问题和其他人的情况不太一样,呵呵,附件的文件能看到,自适应是可以使用,但是是和遮罩一起使用会出现问题

作者: ataotao   发布时间: 2011-01-26

  一样,真的一样

http://bbs.blueidea.com/thread-3011510-1-1.html
比如这位,我看了源文件,并给他做了修改------结果还是一样

作者: flash023   发布时间: 2011-01-26

这么简单的问题用得着使用外部类包吗?呵呵

//影片的相对位置#####################
Stage.scaleMode = "noScale";
onResize;
Stage.align = "LT";
var mcCoriW:Number = mcC._width;
var mcCoriH:Number = mcC._height;
var mcDoriW:Number = mcD._width;
var mcDoriH:Number = mcD._height;
var repos:Object = new Object();
repos.onResize = dorepos;
function dorepos() {
       mcC._x = (Stage.width-mcCoriW)/2;
       mcC._y = (Stage.height-mcCoriH)/2;
       mcD._x = (Stage.width-mcDoriW)/2;
       mcD._y = Stage.height-mcDoriH*2;
}
Stage.addListener(repos);
dorepos();

就这几行代码就行了

演示地址:
https://dl-web.dropbox.com/u/404 ... wfautofit/load.html

源文件下载地址:
https://dl-web.dropbox.com/u/404 ... swfautofit/load.fla

最后别忘记了进入图片元件把内部元件的_x从20改为0

作者: yypz   发布时间: 2011-01-26

谢谢版主和楼上的朋友指点,问题已经解决,继续学习中,非常感谢

作者: ataotao   发布时间: 2011-01-26