如何在sIFR 3 r436中使用颜色?

时间:2009-12-01 07:31:14

标签: javascript css flash sifr

我有demo page up here;你可以查看来源以查看我正在尝试做的事情。

正如你所看到的,除了颜色之外,它的一切似乎都在起作用。我正在尝试将颜色设置为蓝色(#0000ff),但它保持黑色。我为我的字体创建了一个自定义SWF文件,嵌入了单个字体的四种不同变体,以适应每these instructions个不同的样式(因为这个特定的字体系列存储了常规,粗体,斜体和粗体斜体,因为它们是四个不相交的字体名称)。

对于后代,我将粘贴我链接到的演示页面中的一些源代码:

<style type="text/css">
h1.sifr {
    color: #0000ff;
    font-family: 'Myriad Pro';
    font-size: 1.75em;
    margin-bottom: 0;
}
</style>
<script type="text/javascript">
var myriad_pro = {src: 'myriad_pro.swf'};
sIFR.activate(myriad_pro);
sIFR.replace(myriad_pro, {
    selector: 'h1.sifr',
    css: {
        '.sIFR-root': {'color': '#0000ff', 'font-family' : 'Myriad Pro'},
        'em': {'color': '#0000ff', 'font-family' : 'Myriad Pro Italic' , 'font-style' : 'plain'},
        'strong': {'color': '#0000ff', 'font-family' : 'Myriad Pro Bold' , 'font-weight' : 'normal'},
        'em strong, strong em': {'color': '#0000ff', 'font-family' : 'Myriad Pro Bold Italic' , 'font-style' : 'plain', 'font-weight' : 'normal'}}
    }
);
</script>

我忘记了什么?如何使颜色有效?

3 个答案:

答案 0 :(得分:0)

我让它工作here。唯一的区别是我的sifr文本是在链接中包含的,它会在鼠标悬停时改变颜色。

我的脚本如下所示:

 <script language="javascript" type="text/javascript">
        //sIFR.useStyleCheck = true;
        var eurostile = {
            src: '/images/eurostile.swf'};
        sIFR.activate(eurostile);
        sIFR.replace(eurostile , {selector: "div#mainNav li", wmode: "transparent", 
        css: [
             'a { text-decoration: none; color: #666666; }'
            ,'a:link { color: #666666; }'
            ,'a:hover { color: #00299b; }'
        ]});
        sIFR.replace(eurostile , {selector: "div.menuHeadingText", wmode: "transparent"
        ,css: [
            '.sIFR-root { color: #FFFFFF; }',
            'a { text-decoration: none; color: #FFFFFF; }'
            ,'a:link { color: #FFFFFF; }'
            ,'a:hover { color: #FF5A00; }'
        ]});

        sIFR.replace(eurostile , {selector: "h2.boxHeading", wmode: "transparent"
        ,css: [
            '.sIFR-root { color: #666666; }'
        ]});

希望它有所帮助。

/克劳斯

答案 1 :(得分:0)

您可能需要大写颜色值,不应该是font-style: normal而不是plain

答案 2 :(得分:0)

好的,对不起伙计们。事实证明,我只是过分思考这种方式。最后我最终重新导出了我的SWF文件(我想我第一次可能做得有点不正确)并且显着降低了我的JavaScript。我仍然在Flash文件中包含所有“四”字体的嵌入式副本 - 我将主动态文本框设置为Myriad Pro / Regular,然后我创建了3个动态文本框(其中没有文本)设置为粗体,斜体和粗体斜体分别。然后我确保在所有这些上单击“字符嵌入”,并确保包含我想要的字符。

最后我的JavaScript最终看起来像这样:

<script type="text/javascript">
var myriad_pro = {src: 'myriad_pro.swf'};
sIFR.activate(myriad_pro);
sIFR.replace(myriad_pro, {
    selector: 'h1.sifr',
    css: {
        '.sIFR-root': {'color': '#0000ff'}
    }
});
</script>

我没有必要更改字体或任何东西,但我仍然必须确保所有四个都包含在Flash文件中。回顾一下,当我说font-family: "Myriad Pro Italic"等时工作似乎有点奇怪,因为从技术上来说这不是字体名称。但无论出于什么原因导致与颜色发生冲突,所以当我把它称为普通的“Myriad Pro”并让它弄清楚斜体和粗体时,那一切都奏效了。和@Mark - 小写/大写颜色十六进制代码无关紧要。但是 必须是完整的6位十六进制代码(即#00f不起作用)。