Axure教程:動態面板實現廣告循環播放

21 評論 35860 瀏覽 112 收藏 16 分鐘

淘寶、天貓和京東等購物網站已經成為我們生活中的一部分,每每打開我們都可以看到有一個廣告窗口,圖片在里面循環滾動播放,那么它是怎么實現的呢?利用Axure軟件我們可以簡單實現,下面我將向大家分享一下具體步驟,希望能夠幫助到大家。

原材料:

圖片、動態面板、按鈕、狀態欄

2016-06-09_081126

注意命名,狀態欄內的原點按鈕命名和對應的圖片一致,后面有妙用;按鈕和狀態欄都可以用矩形輕松制作而成。

步驟/方法

第一步:設置動態面板內容

動態面板狀態設置成兩層動態狀態,分別是img1、img2,內置相應的圖片,并將圖片和動態面板的大小調成一致,本次案例中的大小是W:850,H:400。

2016-06-09_080247

在主界面將按鈕和狀態移入動態面板框內,調整好位置,設置left和right按鈕的默認狀態為“隱藏”。

2016-06-09_081805

8

第二步:設置動態面板滾動狀態

選中動態面板“dong1”—元件交互與說明“載入時”添加用例—動態面板“設置面板狀態”—dong1(動態面板)—“previous”“向前循環”“循環間隔4000毫秒”—進入動畫“向左滑動”“向左滑動”—“如果隱藏則顯示面板” (以上秒數可以自由選擇)

2016-06-09_081606

第三步:設置點擊圖片打開廣告鏈接的交互動作

雙擊動態面板“dong1”進入動態面板狀態管理—進入面板狀態“img1”—選中圖片“img1”—元件交互與說明“鼠標單擊時”—鏈接“打開鏈接”—打開位置“當前窗口”(也可以選中新窗口)—勾選“鏈接到url或文件”—超鏈接“http://www.baidu.com”(輸入你的目標鏈接地址)(“img2”同)

1

第四步:設置按鈕、狀態欄“選中”狀態

選中“left”按鈕—元件屬性與樣式“屬性”—交互樣式設置“選中”(注意不要點錯為禁用復選框的選中)—勾選“填充顏色”復選框并選擇一個較深顏色,如#999999。(“right”同)

選中狀態欄的原點按鈕“img1”—元件屬性與樣式“屬性”—交互樣式設置“選中”—勾選“填充顏色”復選框并選擇一個橙色,如#FF6600。(“img2”同)

選中狀態欄的原點按鈕“img1”和“img2”—元件屬性與樣式“屬性”—輸入[選項]組名稱—輸入“zu1”(隨意輸入都可以)

第五步:設置按鈕、狀態欄的交互事件

選中“left”按鈕—元件交互與說明“鼠標單擊時”—動態面板“設置面板狀態”—dong1(動態面板)—“next”“向前循環”—進入動畫“向右滑動”“向右滑動”

選中“right”按鈕—元件交互與說明“鼠標單擊時”—動態面板“設置面板狀態”—dong1(動態面板)—“provious”“向前循環”—進入動畫“向左滑動”“向左滑動”

left

left

10

right

選中“left”按鈕—元件交互與說明“鼠標移入時”—元件“選中”—勾選“當前元件”—選中狀態“值”“true”(“right”同)

選中“left”按鈕—元件交互與說明“鼠標移出時”—元件“選中”—勾選“當前元件”—選中狀態“值”“false”(“right”同)

2016-06-09_082321

選中狀態欄的原點按鈕“img1”—元件交互與名稱“鼠標單擊時”—動態面板“設置面板狀態”—勾選“dong1”—選擇狀態“Value”—狀態名稱“[[This.name]]”(利用到了我們之間巧妙的命名了)(“img2”同)

2

第六步:設置動態面板與按鈕和狀態欄的交互

選中動態面板“dong1”—元件交互與說明“鼠標移入時”:

  • 元件“顯示”—勾選“right”“left”—可見性“顯示”
  • 動態面板“設置面板狀態”—勾選“set dong1”—選擇狀態“停止循環”

選中動態面板“dong1”—元件交互與說明“狀態改變時”—

  • “添加條件”—面板狀態“this”==狀態“img1”(即描述“if 面板狀態于 This == img1”)—元件“選中”—勾選“img1(形狀)”—“值”“true” (這里的img1(形狀)指的是狀態欄里的原點按鈕1)
  • “添加條件”—面板狀態“this”==狀態“img2”(即描述“Else if 面板狀態于 This == img2”)—元件“選中”—勾選“img2(形狀)”—“值”“true” (這里的img2(形狀)指的是狀態欄里的原點按鈕2)

完成后動態面板的交互如下圖

3

第七步:動態面板“鼠標移出”交互設置(方法一)

情形一:不設置移出條件

選中動態面板“dong1”—元件交互與說明“鼠標移出時”—元件“隱藏”—勾選“left”和“right”—可見性“隱藏”—動態面板“設置面板動態”(重復第二步)

Bug:當鼠標從動態面板(圖片)移入“left”和“right”按鈕時,也同樣屬于鼠標移出動態面板,導致圖片恢復滾動效果,“left”和“right”在隱藏和顯示出反復閃屏轉換。

情形二:在情形一的基礎上設置移出條件

此步驟需要使用到函數和局部變量。鼠標的函數“Cursor.x”和“Cursor.y”,可以點擊“fx”,再點擊“插入變量或函數”來獲取。

局部變量主要是點擊“fx”—“添加局部變量”—“dong1”=“元件”“dong1”(如下圖)

4

選中動態面板“dong1”—元件交互與說明“鼠標移出時”—添加條件—符合“任何”

  • “值”“[[Cursor.y]]””<””值”“[[dong1.top]]” (含義就是:鼠標的y坐標小于動態面板“dong1”的上邊界)
  • “值”“[[Cursor.y]]””>””值”“[[dong1.bottom]]” (含義就是:鼠標的y坐標小于動態面板“dong1”的下邊界)
  • “值”“[[Cursor.x]]””<””值”“[[dong1.left]]” (含義就是:鼠標的y坐標小于動態面板“dong1”的左邊界)
  • “值”“[[Cursor.x]]””>””值”“[[dong1.right]]” (含義就是:鼠標的y坐標小于動態面板“dong1”的右邊界)

5

這樣子是不是就可準確實現鼠標移出效果了呢?

Bug:鼠標移出效果將會失效,即移出鼠標時仍然不會執行動態窗口滾動的效果。原因是,該動作只在鼠標移出動態窗口“dong1”的那一瞬間執行,此時,對于鼠標的坐標定位會早于移出動作執行,即鼠標坐標定位仍然停留在動態窗口內,因此條件判斷不符合條件,動作無法執行。

情形三:在情形二的基礎上縮小移出的判斷空間范圍

基于情形二的bug,鼠標定位會比移出動作執行早一點,可以轉換思路,將判斷范圍縮小。

選中動態面板“dong1”—元件交互與說明“鼠標移出時”—添加條件—符合“任何”

  • “值”“[[Cursor.y]]””<””值”“[[dong1.top+10]]” (上邊界向下縮小了10)
  • “值”“[[Cursor.y]]””>””值”“[[dong1.bottom-10]]” (下邊界向上縮小了10)
  • “值”“[[Cursor.x]]””<””值”“[[dong1.left+10]]” (左邊界向右縮小了10)
  • “值”“[[Cursor.x]]””>””值”“[[dong1.right-10]]” (右邊界向左縮小了10)

這樣子修改之后基本上可以滿足使用要求,但仍存在bug。用極限思想思考一下,當鼠標移動速度無限接近無窮時,總會在達到一個臨界速度后,在執行移動動態窗口所需的時間內移出距離超過縮短的邊界值10,則又會出現情形二的bug。

第八步:新增動態面板“dong2”解決bug(方法二)

第七步提供的是一種實現移出效果的思路,雖然有小bug,但也是非常值得學習的,用在其他需要的原型中也是可以取到很好的效果的。

步驟七無法解決的問題,實質是無法做到讓“移入‘left’和‘right’按鈕”不包括在“移出動態面板‘dong1’”這個動作范圍內。因此,我們可以轉換思路將“left”、“right”按鈕和狀態欄都納入到動態面板內,但因為“left”、“right”按鈕和狀態欄是不隨圖片滾動,所以無法放置在同一個動態面板內。我們將采取的解決方法是用另一個相同大小的動態面板“dong2”對動態面板“dong1”進行覆蓋,并將“left”、“right”按鈕和狀態欄放置在動態面板“dong2”內。

1)放入動態面板“dong2”,設置大小W:850,H:400;將“left”、“right”按鈕和狀態欄剪切粘貼放入動態面板“dong2”的面板狀態“state1”中,同時,重新設置第六步動態面板“dong1”與狀態欄按鈕“img1”和“img2”的選中交互。

2)設置動態面板“dong2”交互動作:

選中動態面板“dong2”—元件交互與說明“鼠標移入時”—元件“顯示”—“right”“left”—動態面板“設置面板狀態”—勾選“dong1”—選擇狀態“停止循環”

選中動態面板“dong2”—元件交互與說明“鼠標移出時”—元件“隱藏”—“right”“left”—動態面板“設置面板狀態”—勾選“dong1”—選擇狀態“previous”“向前循環”“循環間隔4000毫秒”—進入動畫“向左滑動”“向左滑動”—“如果隱藏則顯示面板”

6

經過動態面板“dong2”對“dong1”的覆蓋可以完美地解決地第七步中存在的問題,但又會出現新的問題,由于“dong1”已經被覆蓋,所以第三步中設置的點擊圖片打開鏈接的功能將會失效。因此,我們需要借助一個矩形來使解決這一問題。

3)打開動態面板“dong2”的面板狀態“state1”,設置一個透明的矩形大小與動態面板“dong2”完全重合,并將矩形置于底層。

4)選中矩形—元件交互和說明“鼠標單擊時”—添加條件—“面板狀態”“dong1”==“狀態”“img1”(即if 面板狀態于 dong1 == img1)—鏈接“打開鏈接”—打開位置“當前位置”—勾選“連接到url或文件”—超鏈接“http://www.baidu.com”(同理設置動態面板“dong1”==img2時)

選中矩形—元件交互和說明“鼠標單擊時”—添加條件—“面板狀態”“dong1”==“狀態”“img2”(即if 面板狀態于 dong1 == img2)—鏈接“打開鏈接”—打開位置“當前位置”—勾選“連接到url或文件“—超鏈接“www.taobao.com”

7

至此,已經完美的實現廣告循環播放效果,本文主要是跟大家交流對于實現循環播放效果的兩種不同思路,如果認為后一種方法更好的可以將第三步和第七步多余的命令刪除。

第一次寫這種教案式的文章,可能寫得有點啰嗦(我自己都覺得有些啰嗦,但又怕太簡潔小白看不懂),希望大家多多包涵,有什么問題也希望大家可以指出來,以后會繼續努力爭取做的更好。謝謝閱讀!

 

本文由 @jianyang 原創發布于人人都是產品經理。未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 你好,這樣開始載入時,狀態欄原點的img1不會亮,必須循環一次之后才會亮。怎么解決?

    來自廣東 回復
  2. 請問連接線怎么畫啊 原來7.0有 8.0就不會了

    來自四川 回復
    1. 8.0上面有選擇鼠標箭頭的狀態的,選擇連接狀態就可以畫了

      來自北京 回復
  3. ?? ??

    來自廣東 回復
  4. 確實太冗長了,建議直接搞個視頻流程更棒

    來自廣東 回復
  5. 為何我手動切換顯示圖片后嗎,圖像就不再輪播了??

    來自上海 回復
    1. 那是因為你的鼠標沒有移出動態面板,鼠標在里面它都是停止播放的。

      來自北京 回復
    2. 我還沒有做鼠標懸停和左右箭頭的部分。只是做了自動輪播和下方圓形鍵的切換。只要手動點擊圓形控鍵切換過一次,就不會再輪播了。有啥情況會出現這種問題?

      來自上海 回復
    3. 應該也還是一樣的問題,你點擊完圓點控鍵需要移出動態面板才會輪播。你的鼠標只要在里面都不會輪播。

      來自北京 回復
    4. 不是的,移出也不輪播。你的源文件中設置動態面板狀態value;狀態名或者狀態序號:[[this.name]]啥意思??這個不是很懂

      來自上海 回復
    5. 利用重名,這個表示該元件的名稱。

      來自北京 回復
    6. 這里直接選擇對應的狀態圖片也ok把

      來自北京 回復
    7. 可以

      來自北京 回復
    8. 用了其他方式,鼠標點擊圓點設置動態面板狀態后,又設置了一遍動態面板輪循的操作,就解決了
      雖然我還是不知道為何我手動切換后會自動停止輪循

      來自上海 回復
    9. 感謝,我找了很久實質性解決辦法,還是用您的方法去加了個情形解決了。我覺得是沒有指令指示鼠標移出后的狀態,就只在某個頁面停下了。

      來自浙江 回復
  6. 應該貼一個源文件出來

    來自上海 回復
  7. ?? 謝謝!以后會繼續寫的。 ?

    來自湖北 回復
    1. 能不能給我個源文件

      來自天津 回復
    2. 源文件鏈接:http://pan.baidu.com/s/1boRf7o7 密碼:ch5h

      來自湖北 回復
    3. 謝謝

      來自天津 回復
  8. ?? ??

    來自江蘇 回復