• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      運用Actions語句實現(xiàn)Flash中的熱區(qū)交互

      2009-03-02 02:43
      關(guān)鍵詞:熱區(qū)指針鼠標

      杜 娟

      熱區(qū),通俗地講就是一個看不見的交互區(qū)域,通過單擊、滑過等響應(yīng)方式觸發(fā)其包含的其他響應(yīng)。在Flash中沒有明確這種功能,但是我們可以綜合運用元件(影片、按鈕)和Actions語句來實現(xiàn)。

      一、熱區(qū)的建立

      (一)特殊按鈕法

      Flash中按鈕制作共包括四幀,依次為:彈起(release)、指針經(jīng)過(pass)、按下(down)和單擊(press)。如果在前三幀不做任何設(shè)置,而只在第四幀中繪制形狀或?qū)胍环鶊D片,如五角星、動物、地圖等,那么就制作了一個“無形”的特殊按鈕。這種按鈕放在場景中是看不到的,但一樣可以實現(xiàn)按鈕的交互,在繪制的形狀范圍內(nèi)單擊,熱區(qū)響應(yīng)就實現(xiàn)了,響應(yīng)的區(qū)域就是這些隱藏的圖形。

      (二)元件透明法

      在Flash6.0以后的版本中,圖形、影片元件是可以進行類似于按鈕交互的。即通過給圖片、影片元件加上Actions語句實現(xiàn)一些特殊的功能,而元件可以設(shè)置多種屬性,所以我們說賦予語句的元件在某種意義上是增強型的按鈕。如將圖片元件的透明度(Alpha)設(shè)置為“0”并且給其加上交互語句,此時圖片就是一個熱區(qū)。再如,將動態(tài)影片元件進行透明度設(shè)置的話,那么熱區(qū)也在不停地變化。從而使熱區(qū)更加豐富多彩。需要提示的是:這一方法同樣適用于按鈕元件,雖然做法不同,但可以達到和前一種方法一樣的效果。

      二、熱區(qū)的響應(yīng)

      (一)鼠標與熱區(qū)的響應(yīng)

      當鼠標指向某一熱區(qū)時,屏幕上會給出明顯的變化對用戶進行提示,通常采用的方式是出現(xiàn)一段解釋文字、鼠標外形的變化或播放聲音等。

      1.文字注釋響應(yīng)

      即當鼠標進入由按鈕制作的隱藏區(qū)域中,出現(xiàn)文字提示。此效果可利用控制元件的透明度alhpa來完成,可以給按鈕加上如下語句實現(xiàn)提示:首先確保提示的文字內(nèi)容是一個影片元件,為其命名為實例名instancename,并將其alpha值設(shè)定為0,即不透明。在按鈕的“動作”面板中編寫如下的Active腳本:

      on (rollOver) {

      instancename._alpha = 100;

      }

      on (rollOut) {

      instancename._alpha = 0;

      }

      2.用自定義鼠標注釋響應(yīng)

      要創(chuàng)建自定義指針,可在舞臺上設(shè)計某種影片剪輯。再在動作腳本中隱藏標準指針,并跟蹤自定義指針的移動。要隱藏標準指針,可使用內(nèi)置Mouse類的Mouse.hide()方法。要使用影片剪輯作為自定義指針,可使用startDrag()動作。創(chuàng)建影片剪輯,將其用做自定義指針并將該剪輯的實例放置在舞臺上。在“動作”面板中鍵入以下內(nèi)容:

      on (rollOver) {

      Mouse.hide();

      newmouse._alpha = 100;

      startDrag(newmouse, true);

      updateAfterEvent();

      }

      on (rollOut) {

      Mouse.show();

      newmouse._alpha = 0;

      }

      3.聲音注釋響應(yīng)

      當鼠標進入熱區(qū)范圍,通過一段聲音提示。這種方式往往用于低年級識字教學(xué)中。其做法是:首先將某段聲音導(dǎo)入到舞臺上。打開庫,選中剛剛導(dǎo)入的聲音,單擊右鍵,點擊“鏈接”,在彈出的“鏈接屬性”對話框中,輸入聲音的標識符,如soundlable,并將“作為動作腳本”的復(fù)選框勾中,點擊“確定”按鈕確認?;氐轿枧_上,選擇“窗口”→“開發(fā)面板”→“行為”,在行為屬性框中添加聲音行為,即選擇“+”,選擇“聲音”→“從庫加載聲音”,在對話框中輸入聲音鏈接的ID,也就是聲音的標識符sound- lable,以及聲音的實例名稱,如instancename。接下來點擊“確定”按鈕即可。這時,會發(fā)現(xiàn)“行為”屬性面板上增加了“釋放時”的行為,只需要將其改為“移入時”即可。同樣的操作方法,“移出時”的行為是停止聲音。該部分的Active腳本如下:

      on (rollOver) {

      //Play Internal Sound Behavior

      if(_global.Behaviors == null)_global.Behaviors = {};

      if(_global.Behaviors.Sound == null)_global.Behaviors.Sound = {};

      if(typeof this.createEmptyMovieClip == 'undefined'){

      this._parent.createEmptyMovieClip('BS_instancename',new Date().getTime()-(Math.floor((new Date().getTime()) /10000)*10000) );

      _global.Behaviors.Sound.instancename = new Sound(this._parent.BS_instancename);

      } else {

      this.createEmptyMovieClip('_instancename_',new Date().getTime()-(Math.floor((new Date().getTime()) /10000)*10000) );

      _global.Behaviors.Sound.instancename = new Sound(this.BS_instancename);

      }

      _global.Behaviors.Sound.instancename.attachSound("soundlable");

      if (true) {

      _global.Behaviors.Sound.instancename.start(0,1);

      }

      //End Behavior

      on (rollOut) {

      //Stop Sound Behavior

      _global.Behaviors.Sound.instancename.stop("soundlable");

      }

      以上都是以鼠標移入熱區(qū)為例進行熱區(qū)響應(yīng)的,其實還可以利用語句實現(xiàn)其他方式的響應(yīng)。如在熱區(qū)內(nèi)按下鼠標:MovieorbuttonName.onPress;單擊熱區(qū):MovieorbuttonName.onRelease;按下鼠標:MovieorbuttonName.onMouseDown;移動鼠標:MovieorbuttonName.onMouseMove;鼠標到達熱區(qū)上:MovieorbuttonName.onRollOver;鼠標從影片移到熱區(qū)外:MovieorbuttonName.onRollOut。

      (二)元件與熱區(qū)的響應(yīng)

      這種響應(yīng)不僅僅是鼠標與熱區(qū)之間的交互,而增加了第三方,也就是當某個物體被移動到熱區(qū)上時產(chǎn)生交互,這種方式在一些實驗或游戲中經(jīng)常能夠見到。一般是當物體移動到熱區(qū)上時響應(yīng)交互,當沒有到達熱區(qū)上時物體返回到原來的位置。

      首先制作兩個元件——被拖動的物體和熱區(qū),物體的實例名為Object,熱區(qū)的實例名為Hotarea。再為元件所在的幀加上如下Actions語句:

      _root.object.onPress = function() {

      _root.object.startDrag();

      x0=_root.hotarea._x;

      y0=_root.hotarea._y ;

      x1=_root.object._x;

      y1=_root.object._y;

      };

      _root.object.onRelease = function(){

      _root.object.stopDrag();

      if(_root.hotarea.hitTest(_root.object))

      {

      _root.object._x = x0;

      _root.object._y = y0;

      _root.object.stopDrag();

      trace("到達目標區(qū)域");

      }

      else

      { _root.object._x = x1;

      _root.object._y = y1;

      trace("沒有到達");

      }

      };

      trace語句可以替換為需要的提示方式。如:gotoandplay()、music.start()等。

      (作者單位:遼寧電化教育館)

      猜你喜歡
      熱區(qū)指針鼠標
      不忘初心繼往開來譜寫熱作新篇章
      ——《熱區(qū)特色農(nóng)業(yè)產(chǎn)業(yè)發(fā)展與關(guān)鍵技術(shù)專刊》刊首語
      Progress in Neural NLP: Modeling, Learning, and Reasoning
      區(qū)域活動中“冷區(qū)”向“熱區(qū)”的轉(zhuǎn)變
      基于改進Hough變換和BP網(wǎng)絡(luò)的指針儀表識別
      定向退火條件下柱狀晶形成及連續(xù)擴展的相場模擬
      ARM Cortex—MO/MO+單片機的指針變量替換方法
      滇西熱區(qū)柚早結(jié)豐產(chǎn)栽培關(guān)鍵技術(shù)
      超能力鼠標
      鼠標也可以是這樣的
      陇西县| 黄龙县| 长沙市| 壶关县| 浦北县| 沙田区| 巩义市| 垫江县| 贵南县| 嫩江县| 玉溪市| 额敏县| 七台河市| 灵宝市| 盐池县| 保定市| 诏安县| 卫辉市| 泸州市| 美姑县| 泸水县| 望江县| 桂阳县| 乐至县| 上思县| 金山区| 勃利县| 和平区| 黔东| 大兴区| 加查县| 湖南省| 右玉县| 武邑县| 赤城县| 特克斯县| 昌都县| 永兴县| 旬邑县| 高邮市| 江达县|