百度空间 | 百度首页 
 
文章列表
 
您正在查看 "Flash" 分类下的文章

2008-11-16 13:03
  我不是专职flash,甚至能说对flash一窍不通。不过为了解决项目中的问题,有时就翻翻手册写那么几行。
自从万恶的flash9被忽然升级到flash10后,问题出现了,先是上传不能用,这个好解决,把按钮变成flash的就好了。但接着就是用js控制播放声音也不能用,这个必须用js控制,后来发现dict.cn很好的解决了这个问题,查看到了它的js文件中有个gotoFrame(1)类似这样的js函数,于是受到启发,通过用js控制flash播放到第几帧,不就可以巧妙的解决吗?
于是把之前用文档类写的声音flash改成了在帧中写action.

1.新建一文档,在第一帧写:
import flash.display.Sprite;
import flash.events.*;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
import flash.external.*;
import flash.system.Security;
flash.system.Security.allowDomain("xxx.com"); //你的域
var url="http://www.xxx.com/test.mp3"; //声音文件
ExternalInterface.addCallback("playSong",function(){gotoAndPlay(1);}); //让js通过playSong()来调用
var request:URLRequest = new URLRequest(url);
var soundFactory:Sound = new Sound();
soundFactory.load(request);
soundFactory.play();
gotoAndPlay(2);
stop();

2.在第二帧写
stop();

3.编译后
function getFlash(movieName)
{
    if (window.document[movieName])
    {
        return window.document[movieName];
    }
    if (navigator.appName.indexOf("Microsoft Internet")==-1)
    {
        if (document.embeds && document.embeds[movieName])
            return document.embeds[movieName];
    }
    else
    {
        return document.getElementById(movieName);
    }
}

通过以下js代码,即可实现在flash9,flash10中播放声音
try{
getFlash("swfid").playSong();
}catch(e){

}

谁有更好的方案请告知。

类别:Flash | 评论(3) | 浏览()
 
2008-11-13 17:33
  之前用JS+flash做了一个批量上传工具,一直用的很爽,最近突然发现有的电脑可以正常使用,有的电脑突然就不能使用了,百思不得其解,后仔细回忆,怀疑是升级到了flash 10插件的缘故,于是卸载掉flash 10装上flash 9后,一切正常。
于是google一些资料,发现flash 10进行了更为严格的安全措施,即不允许通过JS来调用flash里有交互操作的功能,比如浏览文件(需要弹出对话框),既然是这样,那么我把浏览文件按钮改用flash来做就行了。
于是把的先隐藏的flash文件设置显示出来了,并且做成了flash按钮,通过自身来调用,于是解决。

再看看flicker,也把原先的文字add more 改成了flash按钮了,这应该是针对flash 10的唯一解决方案了



类别:Flash | 评论(0) | 浏览()
 
2008-06-27 15:45
此方法使用方法为
AC_FL_RunContent(
"src", "itree,
"width", "100%",
"height", "100%",
"align", "middle",
"id", "treeid",
"quality", "high",
"bgcolor", "#869ca7",
"name", "test",
"flashvars","id=123",
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", "http://www.adobe.com/go/getflashplayer"
);

本以为给flash传参数,比如user_id=888,也是这样,直接加参数user_id,888,最后想起来有个flashvars,加上
flashvars,"user_id=888"即可。
AC_FL_RunContent(
"src", "itree,
"width", "100%",
"height", "100%",
"align", "middle",
"id", "treeid",
"quality", "high",
"bgcolor", "#869ca7",
"name", "test",
"flashvars","id=123",
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", "http://www.adobe.com/go/getflashplayer"
"flashvars","user_id=888"
);

另外media.js这个文件中存在bug,在firefox中生成的embed嵌入的flash没有id,
在方法AC_GetArgs(args, ext, srcParamName, classid, mimeType中有一堆case,
去掉case "id":这一行,然后在default前增加
增加

      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        ret.embedAttrs[args[i]] = args[i+1];
        break;
即可解决
类别:Flash | 评论(0) | 浏览()
 
     
 
 
文章分类
 
 
 
 
 
 
Php(4)
 
 
 
Seo(1)
 
 
     
 
文章存档
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     
 
最新文章评论
   

imfantasy@qq.com 谢谢
 

ilsanbao@163.com
 

h365@qq.com
 

晚上好
 

不懂...
 
     


©2009 Baidu