Posts Tagged ‘使用方法’

用Google Reader给博客制作RSS聚合套件

Monday, February 4th, 2008

这几天我一直在关注一种插件,可以将很多不同博客的FEED聚合在一起,放置在博客的侧边栏中。这样就可以随时了解这些自己关注的内容何时有了更新,而不用特意打开阅读器(Reader)去检查订阅内容是否有更新。这样的好处就是可以增加效率,如果你打开阅读器(Reader)发现什么也没有更新,你只能再关闭它,那是一件多么无聊的事情啊!

因为我使用WordPress,所以起先我先找到了一些插件,比如:BDP RSS Aggregator,这个插件的确很不错,简单易用,但可惜的是对现在的wordpress 2.3.2支持不是很好,缺点主要有:1.只能输出摘要;2.抓取的日志提交时间采用的是抓取时间而不是发表文章时间;3.经常会出现重复内容,看来在抓取内容时程序写的还是有问题。

就当我快绝望的时候,猛然浏览到了一个信息,可以利用Google Reader来制作博客侧边栏的RSS聚合插件。原来找来找去,我要的一直在我眼前,却从未发现。 :)

我本来就喜欢Google的东西,现在不禁更加对Google Reader添了好感。一件看似复杂的事情就这么解决了。

用Google Reader给博客制作RSS聚合套件,具体操作如下:

首先请登录Google Reader并注册一个帐号,这个很简单,就略过了,登录地址:http://www.google.com/reader/

好,用你注册的google帐号登录Google Reader。

1.先手工添加一个自己博客的订阅,然后如下图所示点击“设置”。(如果你一直在使用Google Reader,那么请先为自己的私人订阅创建相应的标签。以免在制作RSS聚合套件时搅乱了以前的订阅。)

然后在订阅菜单内选择自己博客FEED的右面点击“更改文件夹”,然后在下拉菜单中选择“新建文件夹”,输入“RSSA”建立文件夹。如下图:

2.选择“导入/导出”菜单,选择一个OPML文件,点击上传按钮。

然后你会看到订阅列表自动刷新。刚才导入的订阅列表已经在你的订阅菜单里了。如下图,这时请选择“未分配”连接,这样就选中了刚才导入的订阅列表,再选择后面的“更多操作”中的“RSSA”,这样就将所有订阅列表都放进了“RSSA”文件夹内。

3.点击“标签”菜单,选中刚才的“RSSA”文件夹,如下图所示,然后点击图标,这样“RSSA”文件夹就被改为公共项目了。

4.点击“向网站添加剪辑”连接,如下图。

将会出现如下图所示的界面,右面是预览,设置好后把下面的代码拷贝到博客中想出现的地方就行了,当然也可以放在侧边栏的widget中。

=====================================================

附:重新添加订阅列表方法。

好了,通过这4步操作,你已经成功制作了RSS聚合套件。
那么,如果以后聚合订阅列表需重新导入,应该如何操作呢?很简单,如下所示:

1.进入设置界面,进入“订阅”菜单,在右边的“按名称、标签或网址过滤”中输入“rssa”,这样订阅列表中将会只显示“rssa”标签(文件夹)内的所有订阅。选择“所有订阅”链接,点击“退订”按钮,先把所有rssa标签(文件夹)中的订阅全部退订。

2.然后再重复“制作RSS聚合套件”的第二步。

进入“导入/导出”菜单,导入新的opml订阅列表。
然后你会看到订阅列表自动刷新。刚才导入的订阅列表已经在你的订阅菜单里了。这时请选择“未分配”连接,这样就选中了刚才导入的订阅列表,再选择后面的“更多操作”中的“RSSA”,这样就将所有订阅列表都放进了“RSSA”文件夹内。

做完这一步就已经重新导入成功了,不必再重新制作RSS聚合套件,以前使用的代码仍然有效。因为RSS聚合套件(网站剪辑)是基于标签(文件夹)生成的,只要不删除使用的标签(文件夹),RSS聚合套件代码就一直可以使用。

使用Radio.blog3.1创建自己的音乐播放列表

Tuesday, January 29th, 2008

昨天在浏览信息时发现了这个Radio.blog,据说它的热度甚至超过了Myspace。那么让我们来看一下这个Radio.blog到底是什么?

Radio.blog是第一个让你在自己的网站上播放流媒体的标准独立的音乐播放器。
(Radio.blog is the first stand-alone player that lets you stream sound on your website.)

先来看看它的工作原理。
其实Radio.blog只是一个播放流媒体的界面,而且可能是用flash技术制作的,所以它的界面还是比较漂亮的。
它的工作原理很简单,把符合要求的音乐文件上传到自己的空间里(Radio.blog不提供音乐文件的储存),然后把Radio.blog提供的几个文件(其实就是播放界面的文件)安装到自己的空间里。最后,在需要显示此播放列表的网页中添加相应的代码就OK了。

大家可以先看一下示例(点击下面这个连接,在网页底部):
Day After Day | 我们的影像记忆
(more…)

WordPress2.3的Tag标签功能使用方法

Friday, October 19th, 2007

今天我把本博客的WordPress从2.2升级到了2.3版本。2.3版本最令人兴奋的是内置了Tag功能。
但以前的主题一般都不支持Tag功能,需要自己添加些代码才能实现。当然这还是很简单的。:)

首先是文章中的Tag标签实现。
代码是这样的:[在代码两边加上PHP语言符号]
the_tags(‘before’, ‘separator’, ‘after’);
Before,Separator 和 After 分别用你希望的符号或者文字代替;Before代表前缀,After代表后缀,而separator代表Tag中间的分割符号。比如separator用逗号”,”那么显示效果可能是这样的:wordpress主题,WordPress模板,博客教程。

接下来是标签云(Tag云)的实现。
代码是这样的:[在代码两边加上PHP语言符号]
wp_tag_cloud(‘smallest=11&largest=34&unit=ptνmber=50&format=flat∨derby=name&
order=ASC&exclude=&include=’);
其中的参数详解如下:
smallest 标签云显示的最小字体
largest 标签云显示的最大字体
unit 标签云字体所使用的单位,比如px,pt,em,px
number 标签云里显示的标签个数。
format 标签云的样式
flat 默认样式,每个标签之前留一些空白间距
list 把标签显示在一个UL嵌套里面:

    array 这个暂时还不会使用。

    orderby 标签云的排序
    name (默认是按Tag的名字来排序,也就是按字母排序)
    count (按标签的使用次数来计算,使用越少的标签越排前)

    order 同样是标签云的排序,只是控制的效果不一样 – (请注意,下面的参数必须大写):
    ASC (默认,Tag按正常顺序显示)
    DESC (Tag按反向顺序显示,这个参数是相对的,比较说你使用的orderby是按字母排序,那默认情况下,这些标签就是按ABCD来排,但如果你指定order=DESC,那就按ZYX来排序。)

    exclude 排除某个标签。每个标签都有一个ID,如果你希望哪一个标签不显示,那就用’exclude=5,27′。那相应的标签就不会显示。默认情况下是没有排除的。 include 包括某个标签。跟 exclude相反。如果你用’include=5,27′,那就只显示这两个ID的标签。默认情况下是显示全部标签的。

    Flash怎样控制声音

    Wednesday, October 18th, 2006

    声音的一些属性与方法:

    mySound=newSound();//新建一个声音对象,对象的名称是mySound。
    mySound.start(n);//开始在n秒播放声音,当n为空时,从开始播放。
    mySound.stop();停止声音的播放。

    音量控制:(范围从0-100)
    mySound.getVolume();获取当前的音量大小。
    mySound.setVolume();设置当前音乐的音量。

    左/右均衡:(范围从-100到100)
    mySound.getPan();获取左右均衡的值。
    mySound.setPan();设置左右均衡的值。

    声道音量:
    mySound.getTransform();获取左右声音的音量。
    mySound.setTransform();设置左右声道的音量。

    读取声音:
    mySound.loadSound();从外部载入声音。
    mySound.attachSound();从库中加载声音。
    mySound.getBytesLoaded();获取声音载入的字节数
    mySound.getBytesTotal();获取声音的总字节数。

    声音对象的属性:
    mySound.duration;声音的长度。
    mySound.position;声音已播放的毫秒数。

    声音对象的函数:

    mySound.onLoad;声音载入时调用。
    mySound.onComplete;声音播放完成时调用。

    ===========================================================

    两个学习Flash的好地方:

    蓝色理想

    中国Flash技术论坛

    全站Flash技术学习之LoadMovie问题全解

    Sunday, October 15th, 2006

    Flash以前学过一些,但没有尝试过全站的Flash编写。

    什么是全站Flash?看一下这个网站就知道了。感觉全站Flash网页是属于超酷型的。

    以前做的都是单课件Flash,而现在要考虑的关键因素是一个网站整体,首先第一个问题是如何加载外部Flash或者外部图片资源,只有用好这项技术才能使做出来的Flash文件不至于太大。还好,在网上搜了下,找了篇教程,写得不错,通俗易懂。收藏了。loadMovie问题全解

    我再帖一下:

    ��������������������������-

    loadMovie问题全解

    使用loadMovie可以动态的载入外部文件,从而减少主文件的体积,有利于网上下载,以及对各项子文件的修改,更换。可以想想,如果你的整个FLASH网页不分主次,全部统一个FLASH,做成了几M甚至10多M,那么有谁愿意等着看你的网页呢?除非你自己。

    于是使用loadMovie就显得很重要了。现在就让我们从基础开头,然后去分析使用loadMovie所涉及到的具体问题吧。使用loadMovie有两种基本的方法:(一)将外部swf文件载入到某一层上。(二)将外部swf文件载入到时间轴的某个影片剪辑中。

    第二种方法又可以这样写:_root.mc.loadMovie(“a1.swf”);如果a1的后缀名为 jpg那么载入的是外部图片。载入图片与载入swf文件的道理是一样的,就不赘述。说到这里还比较空洞,做一个实例来看看。

    一、新建一个文件夹,任意取一个名字 比如:mywangye

    二、做一个Flash发布成swf文件并且取名字为a1,保存在mywangye这个目录中,这个a1就是我们要载入的子文件。

    三、然后做主文件,由于我们是做最简单的,所以什么也不画,就在这个主文件的第一桢,写 loadMovie(“a1.swf”,1) 同样将这个文件保存在mywangye目录中,取个名字叫index

    四、测试效果,源文件见本文后的打包中的01文件夹

    然后用上面图中的第2种语法,继续做一个,注意了,第二种方法需要在舞台上放一个mc并且取一个实例名,或者创建一个空的MC。做了上面的小实验后,我们可以总结些什么结论呢?如果仅仅是得到可以加载外部文件这么一条结论的话,那么就太肤浅了。可以让我们想到:被加入进来的外部文件的坐标问题;长宽问题;外部文件比较大,造成的加载延时问题;如何访问被加载进来的swf的问题;不要加载了,卸载问题…..这些问题我们如果不研究下,真正在做网页的时候,会遇到很多麻烦的。

    由上面的最简单的加载我们可以得到这样的结论:(1)如果采用加载到层上的,加载进来后默认注册点是舞台的左上角;如果采用加载到mc里面的,那么默认注册点是MC的注册点。如果MC的注册点是左上角,那么被加载进来的SWF文件就与MC的左上角对准;如果MC的注册点是中心,那么加载进来的SWF就把左上角与MC的中心对齐。(2)被加载进来的MC保留原来的长宽比例。

    问题一:如何控制被加载进来的SWF文件的坐标和长宽比例大小?

    控制被加载进来的SWF文件控制其长宽要采用onEnterFrame,比如:

    on (press) {
    loadMovie(�a2.swf�, �_root.mymc�);
    onEnterFrame = function () {
    _root.mymc._x = 0;
    _root.mymc._y = 0;
    _root.mymc._width = 330;
    _root.mymc._height = 240;
    };
    }

    为什么用 onEnterFrame呢?因为被加载进来的的过程中,有点延时,如果没有onEnterFrame语句,那么语句读取一次就不读取了,然而读取了这一次之后,还没有加载进来,所以就会导致坐标大小设置无效。同样,如果加载到层上,也是这样的。

    on (press) {
    loadMovie(�a1.swf�, 1);
    onEnterFrame = function () {
    _level1._x = 17;
    _level1._y = 30;
    _level1._width = 330;
    _level1._height = 240;
    };
    }

    请注意这两种方法,第一种,把外部的a2加载到mymc中,加在进来后,a2就自动的替换了mymc,我们直接设置mymc的属性就设置了被加载进来的swf的属性。第二种方法,_level是对于加载到时间轴上的电影的引用,加载到第2层就是_level2;加载到第3层就是_level3。

    问题之二:如何实现点击按钮加载一个外部SWF文件,并且要显示加载的下载进度呢?

    有两个方法来实现这个效果,其一:把加载londing写在主文件中,其二,被加载的子SWF文件有自己的londing。现在分别给予说明。

    其一:在主文件中写londing

    外部子swf文件名为a1,主文件中有一个动态文本框名为loadText,一个按钮名为bbt,现在把loadMovie和londing写在桢上。

    _root.bbt.onPress = function() {
    _root.createEmptyMovieClip(�mc�, 10);
    mc.loadMovie(�a1.swf�);
    mc._visible = false;
    _root.bbt.onEnterFrame = function() {
    var l = mc.getBytesLoaded();
    var t = mc.getBytesTotal();
    var getPercent = l/t;
    loadText = Math.round(getPercent*100)+�%�;
    if (l>0 && l>=t) {
    mc._visible = true;
    delete this.onEnterFrame;
    }
    mc._x = 10;
    mc._y = 10;
    mc._width =440;
    mc._height = 320;
    };
    };

    其二:子文件中有自己的londing

    这个写法与前面说的londing一样,只是注意一个问题就是注意路径的问题,比如这样写:

    第一祯

    loaded = getBytesLoaded();
    total = getBytesTotal();
    lts = Math.round((loaded/total)*100);
    wenben = lts+�%�;

    第二祯

    if (lts == 100) {
    gotoAndStop(3);
    } else {
    gotoAndPlay(1);
    }

    和前面的londing中介绍的比较,看出不同之处没有呢?仅仅是去掉了_root因为被加载后,外部SWF文件就相当于主文件中的一个MC 有了_root 就是指向主文件的_root 了,当然会显示错误。

    问题三:我想在舞台上画一个屏幕,然后点击一个按钮就载入一个外部swf进行播放该怎样做呢?

    那么我们就来一起做一个相册吧。当主文件载入后,单击按钮就载入一个外部swf 文件,并且都有londing显示。首先我们做好以下准备工作:(1)准备几张图片,现在我们准备7张,6个子文件一个一张,主文件用一张。(2)主文件舞台大小为了适应网页的需要,设置为770*420。子文件舞台大小设置为512*384,这样就不需要载入后控制大小了,方便些(其实我们应当这样,省去一些麻烦。

    一、制作子文件。每个都用来显示图片,第一和第二祯写londing,第三祯~~二十祯根据自己的爱好做点亮度变化,以产生动感,最后一祯写上stop()。第一和第二祯的londing如下

    第一祯

    loaded = getBytesLoaded();
    total = getBytesTotal();
    lts = Math.round((loaded/total)*100);
    wenben = �数据下载中 �+lts+�%�;

    第二祯

    if (lts == 100) {
    gotoAndPlay(3);
    } else {
    gotoAndPlay(1);
    }

    就这样如法炮制的制作6个,分别命名为b1…..b6都发布成swf文件。保存在一个文件夹中。

    二、制作主文件

    第一祯用来写londing,第2祯放一些像屏幕一样的东西,和按钮,为了增加效果,放一个音乐在时间轴上。

    第一祯的londing//由于前面已经说得多了,就不赘述了

    stop();
    i = 0; ,
    onEnterFrame = function () {
    // 使用不断触发的事件
    loaded = _root.getBytesLoaded();
    total = _root.getBytesTotal();
    var aa = Math.round((loaded/total)*100);
    _root.dongtai.wenbens = aa+�%�;
    _root.dongtai._x = 188+aa*3;
    _root.bb._width = aa*3;
    if (aa>=100) {
    // 检测到满足条件就跳出来,否则继续循环
    _root.gotoAndStop(2);
    delete this.onEnterFrame;
    // 使用delete的目的是当完成下载后销毁onEnterFrame事件,以节约资源的消耗。
    }
    };

    Follow Me On Twitter