2010年12月12日 星期日

flash讓滑鼠游標保持為箭頭

例如做大家來找碴時,希望滑鼠移過感應區,可以保持是箭頭游標而不是變成手指
語法如下:

感應區的MoiveClip名稱.useHandCursor=false;

2010年12月11日 星期六

用for迴圈指定多個命名,並且執行動作

假設有在一個movClip內要包含五個連續序號名稱的Movieclip 如:target1、target2、target3、target4、target5,則可以如下寫法來統一執行動作

for (var a = 1; a<=5; a++){
movClip["target"+a].onRelease=function(){
trace("ok")
}

flash取得影片片段MovieClip的名稱

建立一個動態文字框,取名為 M_name

要顯示動畫中MovieClip的名稱,如M1

M_name.text = M1._name

2010年12月10日 星期五

[AS2]Flash的影格做亂數跳躍,且不重覆,可應用於連續出題

引用自http://tw.myblog.yahoo.com/richbrown_tw/article?mid=1066&prev=1085&next=1065


第一影格AS2
stop();
//假設從第一影格開始的每一連續關鍵影格,都有一個評量題.
//num: 影格之數量
//若只要展示1~8個影格的內容,就設成 var num:Number = 8; 即可
var num:Number = 10;
//用來被取出和移除元素之陣列
var mcNumArr:Array = new Array();
for (var i:Number = 1; i<=num; i++) {
 mcNumArr[i] = i;
}
//亂數取出後存放之陣列
var index:Array = new Array();
//clickCount : 點擊次數之累加變數
var clickCount:Number = 0;
//呼叫getRandom(),取得一輪的亂數排序
getRandom();
//根據第一輪亂數裡的第一個亂數,跳至相對應影格
//frameNum動態文字欄位:顯示目前所在影格數
//qNum動態文字欄位:顯示累計目前正在答題數
//order動態文字欄位:顯示亂數答題順序記錄
this.gotoAndStop(index[1]);
frameNum.text = index[1];
qNum.text = 1;
clickCount++;
order.text+=index[1]+"、";
//按鈕事件函式,累加點擊次數;
//滿一輪時clickCount設回1,呼叫resetArr()重設mcNumArr陣列元素;呼叫getRandom()再次取得新的一輪的亂數排序
play_mc.onRelease = function() {
 if (clickCount   clickCount++;
  this.gotoAndStop(index[clickCount]);
  frameNum.text = index[clickCount];
  qNum.text = clickCount;
  order.text+=index[clickCount]+"、";
 }

};
//replay為重新作題按鈕
replay.onRelease=function(){
 clickCount = 0;
 qNum.text = 0;
 frameNum.text = "";
 resetArr();
    getRandom();
 order.text = "";
}
//亂數產生,取出mcNumArr陣列元素,存入index陣列,刪除已取出之mcNumArr陣列元素---> 取得一輪的亂數排序,存入index陣列
function getRandom() {
 for (var i = 1; i<=num; i++) {
  var rad:Number = Math.floor(Math.random()*(mcNumArr.length-1))+1;
  trace("rad: "+rad);
  trace("mcNumArr.length-1: "+(mcNumArr.length-1));
  index[i] = mcNumArr[rad];
  trace("index["+i+"]: "+index[i]);
  mcNumArr.splice(rad, 1);
 }
}
//每一輪點擊後,重設mcNumArr陣列之元素
function resetArr(){
 for (var i:Number = 1; i<=num; i++) {
  mcNumArr[i] = i;
 }
}

2010年11月2日 星期二

在MAC裡面輸入商標符號®

在英文大寫狀態下按option+R

2010年10月12日 星期二

flash跟Photoshop搭配做出GIF動畫

Step1. 在flash動畫的匯出影片換成mov檔(注意尺寸比例要改為Current)

Step2. 接著在photoshop裡︰讀入(import)---->視訊影格到圖層(Video Frames To Layers)。

Step3. 儲存為網頁或裝置用(Save for Web & Devices )

用此方法可做出比flash畫質好的GIF動畫

2010年9月30日 星期四

修正xoops內預設style.css的table td對網頁版面的影響

在fckeditor內編輯好的文章表格跟文字只要儲存後,文章的呈現就會跟編輯時不同,例如文字的垂直對齊原本在編輯時是置中對齊的,但是儲存後卻會變成向上對齊(valign="top"),這是因為在xoops內預設的style.css第4-5行:table td {padding: 0px; vertical-align: top; }影響了最後呈現的版面。

修正的方法是把這句標注起來使其無法執行,但是標注後會發現,左右兩側的欄位就無法一直向上對齊了!這是因為vertical-align: top也被取消了,解決方法是,在#centercolumn 、#leftcolumn、#rightcolumn後面的描述再加上vertical-align: top; 就可以囉~

2010年9月29日 星期三

解決表單form高度問題

在製作表單時,當要插入表單于表格中時往往會出現表格的高度變大,並不是我們想要的效果,這類出問題出現的原因是<form>標籤出現在了<table>的前面,如下:
程式碼<form name="test" method="post">
<table>
<tr>
<td>
</td>
</tr>
</table>
</form>

解決的方法很簡單:即將<form>放在<table>與<tr>之間,如下:
程式碼<table>
<form name="test" method="post">
<tr>
<td>
</td>
</tr>
</form>
</table>

或者

<table>
<tr>
<form name="test" method="post">
<td>
</td>
</form>
</tr>
</table>

問題是解決了,但同時也帶來其他的問題.那就是當我們用MS的Webdesigner之類的工具再次打開這頁面時,提示標籤錯誤,這類軟體要求<form>標籤要放在<table>的外面...

放在外面就會出現高度增加的情況,反正IE和FF都能正常解釋,所以不用管了,就放在裏面好了.

不過,這不代表問題從根本上得到解決,畢竟這樣的代碼是通過不了驗證的,也就是說不是符合標準的,當w3c不讓我們用table來排版的時候,就需要用其他的方法.讓我們來看看從根本上解決問題的方法:

程式碼

<style>
   form{margin:0}
   </style>

==========================================
收錄自http://hi.baidu.com/yytao/blog/item/3ac6b1de570a2851cdbf1a06.html

2010年9月28日 星期二

解決tadnews模組內fckeditor編輯完表格後無法出現邊框的問題

在xoops下使用tadnews模組內的文章編輯器常會發生從word貼上表格,但是前台無法出現表格框的問題
這通常是預設的style.css裡面的開頭第四行

table td {padding: 0; border-width: 0; vertical-align: top; }

把上面的border-width: 0;刪除或是數值改為1即可

2010年9月16日 星期四

用safari下載youtube的影片檔案

Step 1.
觀看影片的頁面

Step 2.
在影片下載時

Step 3.
打開Safari上方選項列 視窗/網路活動

Step 4.
找到正在下載的路徑(下載數字一直變動的那個,通常數目也比較大)

Step 5.
雙擊路徑,就會打開下載器下載影片。

2010年7月20日 星期二

修改tadnews模組的新聞消息顯示欄位排列方式

1.點入文章後的文章列表欄位排列方式原設定如下:
要把排列的欄位左右調換,如所屬分類跟文章標題對調,先找到 主目錄/modules/tadnews/function.php檔案

開啓後修改第297~298行的位置
$all_news=div_3d("","$show_admin_tool_title$all_news
"._MA_TADNEW_NEWS_CATE.""._MA_TADNEW_NEWS_TITLE.""._MD_TADNEW_POSTER.""._MA_TADNEW_START_DATE.""._MD_TADNEW_HOT."
","corners","width:100%");
}
把"._MA_TADNEW_NEWS_CATE." 這些東西前後順序對換就可以調換欄位上的title部份


內容的部份則是修改第263行的位置,把$post_date這些在跟內的東西前後調換,
就可以讓內容的左右也調換了

2010年7月6日 星期二

拿掉tadnews本站最新消息內的「上幾則」、「下幾則」按鈕

進入網站根目錄,並且打開/modules/tadnews/blocks/tadnews_content_block.php

修改第164~166行的
$block.="</table>
<input type='button' style='float:right;' onClick='view_content(1)' value='".sprintf(_TADNEWS_BLOCK_NEXT,$num)."'></div>";
}


把<input type='button' style='float:right;' onClick='view_content(1)' value='".sprintf(_TADNEWS_BLOCK_NEXT,$num)."'>
刪除即可。

xoops的萬用嵌入網頁程式instpage(修正版)

instpage 是一個可以把網路上的任一網頁或網站嵌入您的XOOPS網站中的工具,只要把他解壓縮,並放到XOOPS2的根目錄底下,然後利用瀏覽器執行:「 http://網址/instpage.php 」即可開始設定嵌入網頁。
檔案下載:
instpage(修正版)

2010年6月29日 星期二

把xoops的廣告banner任意放在網頁上的區塊

來源網站:http://www.xoops.org/modules/news/article.php?storyid=5095

----------------------------------------------------------------------------------------------------------
以下的方法可以讓你把任何你想要的banner放在你想要的地方,
有三種選擇的方式可以使用:
Step 1.
找到xoops安裝路徑
xoops root_directory/include/
然後打開 functions.php檔案
在檔案的最後結尾?>符號前輸入以下語法:
<code>
function getbanner_from_id_banner($banner_id)
###### Hack by www.stefanosilvestrini.com ###### global $xoopsConfig$db =& Database::getInstance(); $bresult $db->query("SELECT COUNT(*) FROM ".$db->prefix("banner")." WHERE bid = "$banner_id);
list (
$numrows) = $db->fetchRow($bresult);
if ( 
$numrows ) { $numrows $numrows-1mt_srand((double)microtime()*1000000); $bannum mt_rand(0$numrows);
} else { 
$bannum 0;
}
if ( 
$numrows ) { $bresult $db->query("SELECT * FROM ".$db->prefix("banner")." WHERE bid = "$banner_id1$bannum);
list (
$bid$cid$imptotal$impmade$clicks$imageurl$clickurl$date$htmlbanner$htmlcode) = $db->fetchRow($bresult);
if (
$xoopsConfig['my_ip'] == xoops_getenv('REMOTE_ADDR')) { // EMPTY } else { $db->queryF(sprintf("UPDATE %s SET impmade = impmade+1 WHERE bid = %u"$db->prefix("banner"), $bid));
/* Check if this impression is the last one and print the banner */ if ( $imptotal == $impmade ) { $newid $db->genId($db->prefix("bannerfinish")."_bid_seq"); $sql sprintf("INSERT INTO %s (bid, cid, impressions, clicks, datestart, dateend) VALUES (%u, %u, %u, %u, %u, %u)"$db->prefix("bannerfinish"), $newid$cid$impmade$clicks$datetime()); $db->queryF($sql); $db->queryF(sprintf("DELETE FROM %s WHERE bid = %u"$db->prefix("banner"), $bid));
}
if (
$htmlbanner){ $bannerobject $htmlcode;
}else{ 
$bannerobject '<div align="center"><a href="'.XOOPS_URL.'/banners.php?op=click&bid='.$bid.'" rel="nofollow">';
if (
stristr($imageurl'.swf')) { $bannerobject $bannerobject .'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="468" height="60">'.'<param name="movie" value="'.$imageurl.'"></param>' .'<param name="quality" value="high"></param>' .'<embed src="'.$imageurl.'" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="468" height="60">' .'</embed>' .'</object>';
} else { 
$bannerobject $bannerobject.'<img src="'.$imageurl.'" alt="" />';
}
$bannerobject $bannerobject.'</a></div>';
}
return 
$bannerobject;
}
}

function 
getbanner_from_id_client($client_id)
###### Hack by www.stefanosilvestrini.com ###### global $xoopsConfig$db =& Database::getInstance(); $bresult $db->query("SELECT COUNT(*) FROM ".$db->prefix("banner")." WHERE cid = "$client_id);
list (
$numrows) = $db->fetchRow($bresult);
if ( 
$numrows ) { $numrows $numrows-1mt_srand((double)microtime()*1000000); $bannum mt_rand(0$numrows);
} else { 
$bannum 0;
}
if ( 
$numrows ) { $bresult $db->query("SELECT * FROM ".$db->prefix("banner")." WHERE cid = "$client_id ." ORDER BY rand()"1$bannum);
list (
$bid$cid$imptotal$impmade$clicks$imageurl$clickurl$date$htmlbanner$htmlcode) = $db->fetchRow($bresult);
if (
$xoopsConfig['my_ip'] == xoops_getenv('REMOTE_ADDR')) { // EMPTY } else { $db->queryF(sprintf("UPDATE %s SET impmade = impmade+1 WHERE bid = %u"$db->prefix("banner"), $bid));
/* Check if this impression is the last one and print the banner */ if ( $imptotal == $impmade ) { $newid $db->genId($db->prefix("bannerfinish")."_bid_seq"); $sql sprintf("INSERT INTO %s (bid, cid, impressions, clicks, datestart, dateend) VALUES (%u, %u, %u, %u, %u, %u)"$db->prefix("bannerfinish"), $newid$cid$impmade$clicks$datetime()); $db->queryF($sql); $db->queryF(sprintf("DELETE FROM %s WHERE bid = %u"$db->prefix("banner"), $bid));
}
if (
$htmlbanner){ $bannerobject $htmlcode;
}else{ 
$bannerobject '<div align="center"><a href="'.XOOPS_URL.'/banners.php?op=click&bid='.$bid.'" rel="nofollow">';
if (
stristr($imageurl'.swf')) { $bannerobject $bannerobject .'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="468" height="60">'.'<param name="movie" value="'.$imageurl.'"></param>' .'<param name="quality" value="high"></param>' .'<embed src="'.$imageurl.'" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="468" height="60">' .'</embed>' .'</object>';
} else { 
$bannerobject $bannerobject.'<img src="'.$imageurl.'" alt="" />';
}
$bannerobject $bannerobject.'</a></div>';
}
return 
$bannerobject;
}
}

</code>
然後把檔案儲存關閉。


以下有三種簡單的方法可以選擇:
方法一:
在xoops的區塊管理內自訂一個區塊,然後選擇內容類型為php腳本。
echo xoops_getbanner();貼在內容欄位裡面
然後在廣告管理的地方,把廣告啓動即可(不論廣告有的數量)

方法二:

在xoops的區塊管理內自訂一個區塊,然後選擇內容類型為php腳本。
echo getbanner_from_id_banner(ID_BANNER);貼在內容欄位裡面
然後在廣告管理的地方,把廣告啓動即可(不論廣告有的數量),ID_BANNER就是廣告的ID號碼,
用,用這個語法,可以新增不同的區塊,然後再不同的區塊,顯示不同的廣告

方法三:
在xoops的區塊管理內自訂一個區塊,然後選擇內容類型為php腳本。
echo getbanner_from_id_client(ID_CLIENT);貼在內容欄位裡面
然後在廣告管理的地方,把廣告啓動即可(不論廣告有的數量),ID_CLIENT就是廣告的客戶名稱,如果該客戶有10個廣告,那麼區塊就只會針對這個客戶的10個廣告隨機輪播。