2009-12-01 41 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