2009-12-01 59 views
0

我有demo page up here;您可以查看源代码以查看我正在尝试执行的操作。如何让颜色在sIFR 3 r436中工作?

正如你所看到的,除了颜色外,它的一切似乎都在起作用。我试图将颜色设置为蓝色(#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> 

我忘记什么?我如何获得颜色的工作?

回答

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将不起作用)。

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; }' 
     ]}); 

希望它能帮助。

/克劳斯

+0

我将HTML,CSS和JS从您链接的页面中取出,并改为加载我自己的SWF文件。颜色工作。但是,这只是一个单一的字体(Myriad Pro Regular)。当我试图混合上面的不同字体(Regular,Bold,Italic和Bold Italic)时,它不起作用 - 它没有显示任何*文本!所以看起来好像我可以让颜色工作,或者我可以使用多种字体,但不能同时使用两种。 – SoaperGEM 2009-12-01 20:26:06

0

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

+0

感谢您的建议,但没有奏效。= /你对它的正确性是font-style:normal,尽管那部分已经工作了,所以我猜想当它看到一些它不认识的东西时,它就是正常的。我试过#0000ff,#0000FF,rgb(0,0,255)和RGB(0,0,255)都无济于事。 – SoaperGEM 2009-12-04 05:22:20