精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于ArkTS的應用入場動畫

開發 游戲開發
ArkTS的動畫開發無疑是非常有趣的,如果讀者想開發更加復雜的動畫效果,不妨參考ArkTS的官方API文檔,學習和玩轉更多新奇的用法。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

前言

相信讀者對應用入場動畫并不陌生。當用戶打開某個應用時,應用得到響應,與此同時其在屏幕中所渲染的第一個畫面通常是它的入場動畫。當然,應用響應后所拋出的不一定是動畫,它也可以是一個靜態的頁面,不過不論是動畫還是靜態頁面,它們所起到的功能是相同的——在后臺完成應用中的重要模塊的初始化,貼出開發團隊的slogen,亦或展示一些甲方的產品推廣廣告。

本期筆者將以一個輕量Demo的開發流程為例,與筆者共同探索如何利于ArkTS生產應用的入場動畫。

正文

創建工程

打開DevEco Studio(開發工具的版本必須支持API9),創建一個新的project,相關勾選如下:

添加新頁面

成功創建工程后,在工程文件目錄中打開目錄:Demo/entry/src/main/ets/pages, 接著右擊page,選擇New>TypeScript ArkTS File, 創建一個新的ArkTS文件,并將其命名為Second

接著,在工程文件目錄中打開目錄:Demo/entry/src/resources/base/profile/main_pages,添加Second頁面的路徑信息。注意,字符串'pages/Index’后面的逗號不能漏寫。

編寫新頁面的UI

在編輯器中打開新創建的Second.ets,添加如下代碼:

@Entry
@Component
struct Index {
  @State message: string = '主頁面'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(40)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
    .backgroundColor('#F1F1F1')
  }
}

事實上,這段代碼來自于Index.ets, 我們只不過是將Index.ets的代碼拷貝至Second.ets中后,修改了變量message的初值,并更換了頁面的背景色。由于Second.ets所管理的頁面在此次的開發案例中不是主角,所以我們簡單設計一下它的UI就足夠了。

Second.ets的最終預覽效果如下:

編寫入場頁面的UI

加入圖片資源

Before coding,我們需要添加一份圖片資源到工程的指定目錄內。

在工程文件目錄中打開目錄:Demo/entry/src/main/resources/rawfile, 添加一張任意的圖片(可以在IDE中將待添加的圖片資源直接粘貼至rawfile目錄下,也可以在文件資源管理器中通過文件路徑打開rawfile目錄并添加圖片資源),將其命名為logo1。當然,圖片的格式沒有要求,只要在之后的步驟中能被正確引用即可。

添加組件

在編輯器中打開Index.ets(此頁面將作為入場頁面), 刪除Column組件內關于Text組件的代碼塊,增添一個新的Image件和一個新的Text組件,并填充它們的UI屬性,相關代碼如下。其中,新增的Image組件所引用的圖片資源是上一個步驟中所添加的logo1.jpg。

@Entry
@Component
struct First {
  @State message: string = 'Hello World'

  build() {
    Row() {
      Column() {

        //刪除頁面初始化時默認帶有的Text組件, 增加一個新的image件和一個新的Text組件

        Image($rawfile('logo1.jpg'))
          .height(120)
          .width(120)

        Text('Brunhild')
          .fontSize(20)
          .fontWeight(FontWeight.Bold)
          .margin({
            top:7
          })

      }
      .width('100%')
    }
    .height('100%')
  }
}

預覽器效果如下:

至此,我們已完成對Index.ets的頁面UI繪制。接下來,我們需要為這兩個新添的組件設置與屬性動畫有關的屬性。屬性動畫(animation)是ArkUI提供的最基礎和常用的動畫功能之一,它的功能邏輯是,當組件的布局屬性(譬如位置,大小,背景顏色)發生變化時,組件會按照已設置好的動畫參數,從原有的布局狀態過渡到變化后的布局狀態,而這個過渡的擬連續過程便是用戶所見到的動畫。在這個基礎上,我們可以制作一個簡單的應用入場動畫效果。

添加關鍵屬性

所涉及的兩個重要屬性分別是translate屬性和animation屬性。

事實上,系統為每個被渲染的組件都設置屬于它的相對坐標系。這個坐標系是一個平面直角坐標系,并且,相對于屏幕,X坐標軸正方向水平向右,Y坐標軸正方向豎直向下。當一個組件的translate屬性被設置時,它的實際位置會跟著translate屬性而偏移。比如,一個原本位于屏幕中央的組件,更改其translate屬性為{x:100,y:0}后,其位置會相對屏幕中央往右平移100px。

animation屬性的可供設置的參數如下所示,每個參數都會在不同維度影響動畫的最終效果。

/**
   * Animation duration, in ms.
   * @since 7
   */
  /**
   * Animation duration, in ms.
   * @form
   * @since 9
   */
  duration?: number;
  /**
   * Animation playback speed. A larger value indicates faster animation playback, and a smaller value indicates slower
   * animation playback. The value 0 means that there is no animation.
   * @since 7
   */
  tempo?: number;
  /**
   * Animation curve.
   * @type { string | Curve}
   * @since 7
   */
  /**
   * Animation curve.
   * @type { string | Curve | ICurve}
   * @form
   * @since 9
   */
  curve?: Curve | string | ICurve;
  /**
   * Animation playback mode. By default, the animation is played from the beginning after the playback is complete.
   * @since 7
   */
  delay?: number;
  /**
   * Animation playback mode. By default, the animation is played from the beginning after the playback is complete.
   * @since 7
   */
  iterations?: number;
  /**
   * Animation playback mode. By default, the animation is played from the beginning after the playback is complete.
   * @since 7
   */
  /**
   * Animation playback mode. By default, the animation is played from the beginning after the playback is complete.
   * @form
   * @since 9
   */
  playMode?: PlayMode;
  /**
   * Callback invoked when the animation playback is complete.
   * @since 7
   */
  /**
   * Callback invoked when the animation playback is complete.
   * @form
   * @since 9
   */
  onFinish?: () => void;

接下來,我們為組件添加關鍵屬性。

首先,定義變量 translateY_Logo,同時設置Image組件的translate屬性和animation屬性。

@Entry
@Component
struct First {
  
 	 ......

  @State translateY_Logo:number = -200    //定義一個用@state修飾的number型變量translateY_Logo

  build() {
    Row() {
      Column() {

        //刪除頁面初始化時默認帶有的Text組件, 增加一個新的image件和一個新的Text組件

        Image($rawfile('logo1.jpg'))
          .height(120)
          .width(120)
          //添加關鍵屬性
          .translate({
            y:this.translateY_Logo
          })
          .animation({
            //播放時長(ms)
            duration:2000,
            //播放速度
            tempo:1,
            //播放曲線,所選擇的是‘快出慢入’
            curve:Curve.FastOutSlowIn,
            //延遲(ms)
            delay:500,
            //循環次數(-1為無限循環)
            iterations:1,
            //播放模式
            playMode:PlayMode.Normal
          })

			......

      }
      .width('100%')
    }
    .height('100%')
  }
}

接著,定義變量 translateY_Title,同時設置Text組件的translate屬性和animation屬性。

@Entry
@Component
struct First {

		......

  @State translateY_Title:number = 200    //定義一個用@state修飾的number型變量translateY_Title

  build() {
    Row() {
      Column() {

        //刪除頁面初始化時默認帶有的Text組件, 增加一個新的image件和一個新的Text組件

      	......

        Text('Brunhild')
          .fontSize(20)
          .fontWeight(FontWeight.Bold)
          .margin({
            top:7
          })
          //添加關鍵屬性
          .translate({
            y:this.translateY_Title
          })
          .animation({
            delay:500,
            duration:2000,
            curve:Curve.FastOutSlowIn,
            tempo:1,
          })



      }
      .width('100%')
    }
    .height('100%')
  }
}

頁面起始狀態的效果如下,可以看到,設置translate屬性后,Image組件往Y軸負方向偏移,Text組件則往Y軸正方向偏移。

最后,我們為Text組件添加onAppear回調。onAppear可以被理解為一個事件監聽器,當一個綁定了onAppear的組件裝載于顯示器時,onAppear回調將被觸發,執行onAppear()中所傳入的操作語句。換句話說,Text組件在添加onAppear屬性后,當此Text組件出現時(筆者也不清楚這個出現是如何定義的),onAppear立即觸發,執行已寫入的函數參數(即λ表達式中的內容)。

在如下代碼中,筆者為Text組件增加了onAppear回調,導入了router模塊,并寫入了相關操作語句:首先,改變Image組件和Text組件的translate屬性,激活屬性動畫;之后,設置定時器(每4秒執行一次),使得系統在屬性動畫結束后執行頁面跳轉(跳轉至Second頁面);最后,銷毀先前設置的定時器。

import router from '@ohos.router';     //導入router模塊

@Entry
@Component
struct First {

		......

  @State translateY_Title:number = 200    //定義一個用@state修飾的number型變量translateY_Title

  build() {
    Row() {
      Column() {

        //刪除頁面初始化時默認帶有的Text組件, 增加一個新的image件和一個新的Text組件

      	......

        Text('Brunhild')
          .fontSize(20)
          .fontWeight(FontWeight.Bold)
          .margin({
            top:7
          })
          //添加關鍵屬性
          .translate({
            y:this.translateY_Title
          })
          .animation({
            delay:500,
            duration:2000,
            curve:Curve.FastOutSlowIn,
            tempo:1,
          })
          //增加onAppear回調
          .onAppear(()=>{
          	//改變屬性參數
            this.translateY_Logo = 0
            this.translateY_Title = 0
            
            //設置定時器
            let id = setInterval(()=>{
            	//打印日志
              console.info('router to Second')
              //頁面跳轉
              router.pushUrl({
                url:'pages/Second'
              })
              //定時器執行之后立即銷毀
              clearInterval(id)
            },4000,[])
          })


      }
      .width('100%')
    }
    .height('100%')
  }
}

至此,一個關于入場動畫的Demo便完成了。

預覽效果如下:

結語

ArkTS的動畫開發無疑是非常有趣的,如果讀者想開發更加復雜的動畫效果,不妨參考ArkTS的官方API文檔,學習和玩轉更多新奇的用法。

文章相關附件可以點擊下面的原文鏈接前往下載:

https://ost.51cto.com/resource/3050

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2024-07-09 08:43:29

2024-05-31 08:43:31

2017-06-12 08:12:18

筆記本聯想ThinkPad

2012-07-31 09:55:26

Emotion UI華為

2024-05-21 08:04:50

ArkTS鴻蒙應用開發語言

2017-06-07 10:28:30

諸葛io數據分析數據應用

2022-02-25 14:57:33

harmonyOSjava心形動畫

2014-04-04 14:40:45

招聘

2016-01-20 10:11:56

華麗CanvasHTML5

2012-07-25 13:28:19

ibmdw

2023-08-04 15:00:43

ArkTS語言鴻蒙

2014-04-30 10:48:21

Paper動畫引擎Pop

2011-08-29 17:17:00

Android應用gif快手iPhone應用

2017-08-03 13:36:22

2023-07-31 17:35:31

ArkTS鴻蒙

2009-05-20 14:48:07

ibmdwEclipse開發技巧

2009-02-03 11:21:58

2009-01-18 09:56:10

WebSphereJava EEJ2EE自動部署

2017-11-22 14:08:23

OVSVLAN虛擬化網

2014-12-10 09:46:31

輕量級操作系統Adobe Chrome OS
點贊
收藏

51CTO技術棧公眾號

亚州国产精品久久久| 狠狠躁夜夜躁久久躁别揉| 国产精品热视频| 欧美激情图片小说| 久久精品国产亚洲5555| 日本韩国精品在线| 亚洲一区免费看| 好男人在线视频www| 久久九九电影| 欧美人与性动交| 爱爱的免费视频| 亚洲人成777| 亚洲网址在线观看| 国产一区在线视频| 国产成人高清精品| 91麻豆精品激情在线观看最新| 亚洲美女视频在线| 青青成人在线| 亚洲精品无遮挡| 奇米综合一区二区三区精品视频| 欧美黑人一级爽快片淫片高清| 久久国产精品影院| 日韩区一区二| 欧美三级在线看| 日韩在线综合网| 91最新在线视频| 中文字幕乱码亚洲精品一区| 狠狠久久综合婷婷不卡| 91丨九色丨丰满| 销魂美女一区二区三区视频在线| 久精品免费视频| av最新在线观看| 欧美自拍偷拍| 亚洲深夜福利在线| 日本黄色动态图| 综合激情网...| 欧美一区二区三区系列电影| 超碰在线97免费| 欧美裸体视频| 婷婷久久综合九色国产成人 | 国产乱码精品一区二区三区精东| 亚洲乱亚洲乱妇无码| 亚洲狠狠婷婷综合久久久| 少妇一级淫片免费看| 国产精品自拍在线| 91精品久久久久久综合乱菊| 中文字幕在线播放日韩| 老牛国产精品一区的观看方式| 性色av一区二区咪爱| 国产一级在线观看视频| 欧美午夜影院| 欧美激情按摩在线| 欧美极品aaaaabbbbb| 国产富婆一级全黄大片| 免费一区二区| 精品无人国产偷自产在线| 稀缺小u女呦精品呦| swag国产精品一区二区| 精品国产麻豆免费人成网站| 中文字幕制服丝袜| 一区三区自拍| 亚洲成人网av| 精品黑人一区二区三区观看时间| 中文字幕亚洲影视| 亚洲欧美综合v| 香蕉视频久久久| 日韩极品一区| 欧美成人一区在线| 天天操天天射天天爽| 亚洲欧美久久| 国产精品高潮粉嫩av| 一级淫片免费看| 国产福利视频一区二区三区| 国产欧美日韩伦理| 久久经典视频| 中文字幕亚洲精品在线观看| gogogo免费高清日本写真| 天天色天天射天天综合网| 亚洲观看高清完整版在线观看 | 一区二区日本视频| 日本91av在线播放| 怡红院男人的天堂| 国产乱国产乱300精品| 国产美女精品久久久| 亚洲av成人无码久久精品老人 | 亚洲精品v欧美精品v日韩精品| 一级性生活毛片| 色135综合网| 欧美激情久久久久久| 亚洲免费黄色网址| 激情在线视频播放| 亚洲一区二区三区免费在线观看 | 国产精品第9页| 日韩va亚洲va欧美va久久| 91欧美视频网站| 天堂av中文在线资源库| 国产精品卡一卡二卡三| 青青草视频国产| 亚洲人免费短视频| 日韩一区二区三区在线| 久久久久久国产精品无码| 亚洲国产精品日韩专区av有中文| 91成人在线播放| 一本久道久久综合无码中文| 99久久国产综合精品麻豆| 一区二区不卡视频| 瑟瑟视频在线看| 91精品国产免费久久综合| 91精品人妻一区二区| 夜间精品视频| 国产精品久久999| 欧洲精品久久一区二区| 国产精品国产自产拍高清av| www.中文字幕在线| 嫩呦国产一区二区三区av| 亚洲色图偷窥自拍| 国产中文字字幕乱码无限| 青青草精品视频| 久久久精彩视频| 欧美日韩色网| 欧美一级夜夜爽| 国精品人伦一区二区三区蜜桃| 国产精品嫩草99av在线| 国产精品18毛片一区二区| 欧美激情办公室videoshd| 欧美日韩在线视频观看| 91精品啪在线观看国产| 综合国产在线| 成人春色激情网| 川上优的av在线一区二区| 疯狂蹂躏欧美一区二区精品| 99久久久无码国产精品性波多| 国产老头和老头xxxx×| 丁香一区二区| 欧美大片免费观看在线观看网站推荐| 91麻豆精品在线| 久久久久久久久久电影| 国产精品va无码一区二区| 天堂精品在线视频| 成年人精品视频| 国产人妻精品一区二区三| 中文无字幕一区二区三区| 韩国一区二区av| 亚洲区小说区| 欧美一区二区三区图| 国产又爽又黄网站亚洲视频123| 一区二区三区欧美激情| 手机在线播放av| 欧美a级在线| 97中文在线| 国产丝袜在线播放| 亚洲国产又黄又爽女人高潮的| 久久影院一区二区| www..com久久爱| 熟女少妇在线视频播放| 亚洲成人一品| 日本午夜精品理论片a级appf发布| 日本人妖在线| 欧美日韩综合色| 天堂网avav| 国产成人精品网址| www.好吊操| 欧美日韩一区二区三区在线电影| 欧美一级在线播放| 国产中文在线| 欧美肥妇毛茸茸| 久久精品www| 2024国产精品视频| 91激情视频在线| 国产精品国内免费一区二区三区| 亚洲精品免费在线视频| 91黄页在线观看| 亚洲女在线观看| 亚洲天堂手机版| 亚洲精品第1页| 色噜噜在线观看| 日日骚欧美日韩| 中文字幕制服丝袜在线| 97se亚洲国产一区二区三区| 55夜色66夜色国产精品视频| 国产日产欧美一区二区| 91麻豆精品国产91久久久更新资源速度超快| 色婷婷综合久久久久中文字幕1| 国产伦子伦对白视频| 亚洲成人av中文| 精品成人无码一区二区三区| 国产乱码精品一区二区三区五月婷| 国产真实老熟女无套内射| 给我免费播放日韩视频| 国产精品久久av| 欧美草逼视频| 一本色道久久综合亚洲精品小说 | 91嫩草国产线观看亚洲一区二区 | 亚洲女色av| 久久精品中文字幕电影| 天天操天天干天天干| 欧美体内she精视频| 国产精品成人av久久| 欧美高清在线视频| 成人啪啪18免费游戏链接| 丝袜脚交一区二区| 糖心vlog在线免费观看| 红桃视频在线观看一区二区| αv一区二区三区| 日本成人伦理电影| 韩国一区二区电影| 95在线视频| 亚洲精品狠狠操| 99产精品成人啪免费网站| 欧美色xxxx| 久草网视频在线观看| 国产精品热久久久久夜色精品三区 | 久久综合婷婷综合| 日韩精品一区二区三区免费视频| 国产精品黄色av| 一个人www视频在线免费观看| 欧美大片第1页| 国产精品实拍| 中文字幕精品网| 亚洲色图欧美视频| 精品国产自在久精品国产| 中文字幕在线观看1| 日韩欧美在线看| 久草视频精品在线| 亚洲精品美国一| 欧美一区二区视频在线| 国产片高清在线观看| 91精品福利在线| 国产成人精品网| 欧美aaa级片| 欧美激情综合五月色丁香小说| 亚洲一区二区在线免费| 国产精品夜夜爽| 国产精品嫩草影视| 国产真实精品久久二三区| 亚洲欧美国产中文| 免费一级欧美片在线观看| 国产激情在线观看视频| 免费日韩av片| 欧美性大战久久久久xxx| 亚洲三级影院| 99精品在线免费视频| 国产日韩欧美| 91av资源网| 久久不射2019中文字幕| 无码精品a∨在线观看中文| 夜夜嗨一区二区三区| 日本欧美黄色片| 中文国产一区| 亚洲中文字幕无码中文字| 午夜宅男久久久| 欧美精品成人网| 久久精品国产秦先生| 成人综合久久网| 国产一区二区在线观看免费| 在线观看日本www| 国产v日产∨综合v精品视频| 无码人妻丰满熟妇啪啪网站| 国产91精品在线观看| 国产精品久久久久久在线观看| av色综合久久天堂av综合| 日本免费福利视频| 国产亚洲欧美日韩日本| 国产99在线 | 亚洲| 国产精品私人自拍| 91 在线视频| 亚洲资源中文字幕| 四虎精品永久在线| 欧美伊人精品成人久久综合97| 亚洲视频一区在线播放| 日韩三级视频中文字幕| 天堂在线观看视频| 亚洲欧美精品在线| 国产在线高清理伦片a| 久久久免费在线观看| 亚洲同志男男gay1069网站| 国产欧美精品日韩精品| 深夜福利一区二区三区| 久久一区二区三区av| 日本少妇裸体做爰| 91麻豆国产自产在线观看| 亚洲一区 欧美| 一区二区三区中文在线观看| 日韩三级一区二区三区| 欧美色男人天堂| 国产18精品乱码免费看| 亚洲最新在线视频| 国产三线在线| 国产精品日韩欧美大师| 91欧美极品| 污视频在线免费观看一区二区三区| 在线成人直播| 黄色免费网址大全| 成人晚上爱看视频| 综合 欧美 亚洲日本| 亚洲妇女屁股眼交7| 在线观看免费观看在线| 亚洲福利精品在线| 精品自拍一区| 57pao成人国产永久免费| 精品一区二区三区亚洲| 欧美一区二区三区电影在线观看 | 欧美国产视频日韩| 天堂久久午夜av| 国产亚洲一区在线播放| 亚洲v在线看| 三年中国国语在线播放免费| 成人app下载| 男人在线观看视频| 色综合天天综合网天天看片| 国产www视频| 色99之美女主播在线视频| 伊伊综合在线| 动漫一区二区在线| 一区二区电影| 亚洲欧美自拍另类日韩| 久久精品夜色噜噜亚洲a∨| 国产精品第108页| 91精品国产欧美日韩| 在线观看麻豆蜜桃| 日韩av大片在线| 日韩av午夜| 欧洲精品一区二区三区久久| 国产一区日韩二区欧美三区| 亚洲欧美va天堂人熟伦| 欧美视频中文字幕在线| 国产小视频一区| 欧美激情精品久久久| 欧美日本三级| 日韩国产精品毛片| 精品夜夜嗨av一区二区三区| 亚洲色图日韩精品| 欧美三级资源在线| 成人三级黄色免费网站| 日本一区二区三区四区视频| 色狼人综合干| 茄子视频成人免费观看| 成人资源www网在线最新版| 国产一区二区三区精品久久久| 卡通欧美亚洲| 欧美一区二区三区四区五区六区 | 国产精品伦子伦免费视频| 夜夜春成人影院| 欧美日韩在线中文| 91小视频在线| 在线观看日本网站| 国产一区二区动漫| 91天天综合| 熟女熟妇伦久久影院毛片一区二区| 韩国精品一区二区| 性欧美videos| 精品免费国产二区三区| 成av人片在线观看www| 久久久久久a亚洲欧洲aⅴ| 亚洲一区日韩| 日本欧美一区二区三区不卡视频| 欧美色手机在线观看| 国产剧情在线| 国产精品一区二区av| 在线一区欧美| 亚洲综合欧美综合| 欧美日韩精品一区二区| 污污视频在线看| 国产一区自拍视频| 久久久久综合| 国产成人免费在线观看视频| 91精品在线一区二区| 国内老司机av在线| 免费影院在线观看一区| 男女性色大片免费观看一区二区 | 国产91在线视频蝌蚪| 成人免费在线一区二区三区| 亚洲精品社区| 国产又黄又粗的视频| 91精品国产综合久久久久久久 | 亚洲综合成人婷婷小说| 尹人成人综合网| 国产一二三四五区| 制服丝袜av成人在线看| 激情aⅴ欧美一区二区欲海潮| 天天久久人人| 国产91精品精华液一区二区三区| 最新中文字幕一区| 日韩中文字幕视频在线| 国产精品白浆| 最新国产黄色网址| 亚洲国产色一区| 在线观看完整版免费| 国产一区二区中文字幕免费看| 美洲天堂一区二卡三卡四卡视频| 激情五月婷婷小说| 在线观看国产精品91| 精品亚洲精品| 免费成年人高清视频| 成人久久网站| 日韩久久久久久久| 成人免费视频caoporn| 中国一级特黄视频| 欧美夫妻性视频| 色综合咪咪久久网|