精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

在线不卡国产精品| 婷婷久久一区| 亚洲成人7777| 久久久久久九九九| 国产乱子夫妻xx黑人xyx真爽| 日韩免费不卡视频| 国产99在线观看| 国产一区二区三区视频在线播放| 久久久国产精品免费| 欧洲美女亚洲激情| 香蕉视频在线网址| 成人h在线播放| 日本黄色特级片| 三上悠亚一区二区| 东方欧美亚洲色图在线| 亚洲视频在线视频| 成人黄色一级大片| 丁香花电影在线观看完整版| 9色porny自拍视频一区二区| 亚洲欧美精品suv| av污在线观看| 99riav视频在线观看| 日本欧美韩国一区三区| 欧美一区二区成人6969| 欧美一区亚洲二区| 国产在线免费视频| 色婷婷av一区二区三区丝袜美腿| 欧美三级电影网站| 国产精品久久久对白| 国产乡下妇女做爰毛片| 九九综合久久| 日韩欧美在线一区二区三区| 色女孩综合网| 亚洲国产精品久久久久爰性色 | 欧美日韩高清免费| www.超碰在线观看| 天堂俺去俺来也www久久婷婷| 色婷婷av一区二区三区大白胸| 青春草在线视频免费观看| 天天综合天天色| 欧美特黄一区| 日韩欧美久久久| 91大学生片黄在线观看| 国产天堂在线| 成人av午夜影院| 久色乳综合思思在线视频| av免费中文字幕| av免费网站在线观看| 日本亚洲视频在线| 韩国三级日本三级少妇99| 狂野欧美性猛交| 日韩毛片免费观看| 亚洲欧美日韩人成在线播放| 91欧美精品成人综合在线观看| 自拍偷拍视频亚洲| 中文字幕在线免费观看视频| 久久久天堂av| 国产日本一区二区三区| 久久久久亚洲av无码专区 | 男男一级淫片免费播放| 亚洲精品aaa| 欧美激情一区二区在线| 午夜精品一区二区三区av| 亚洲国产精品一区二区久久hs| 久久99国产精品视频| 亚洲精品久久久久中文字幕二区| 人妻 丝袜美腿 中文字幕| 四虎影院观看视频在线观看 | 波多野结衣中文在线| 亚洲免费电影在线| 不卡视频一区二区三区| 国产又大又黑又粗| 久久精品久久久| 精品久久久网站| 日韩高清一二三区| av不卡一区| 欧美日韩一二三四五区| 国产二区视频在线| 136福利第一导航国产在线| 亚洲卡通欧美制服中文| 欧美另类videosbestsex日本| 亚洲婷婷噜噜| 亚洲国产美女搞黄色| 婷婷无套内射影院| 麻豆视频在线观看免费网站黄| 亚洲国产你懂的| 日批视频在线免费看| 桃花岛成人影院| 欧美日韩免费一区二区三区视频| 亚洲 激情 在线| 欧美人与性动交α欧美精品济南到| 亚洲欧洲一区二区三区| 女同性恋一区二区| 日韩伦理av| 婷婷中文字幕一区三区| 日韩在线一级片| shkd中文字幕久久在线观看| 一区视频在线播放| 日韩在线观看a| av中文字幕在线观看第一页| 欧美性xxxx极品hd欧美风情| 丁香婷婷激情网| 亚洲成人高清| 亚洲国产一区二区三区四区| 在线观看福利片| 日本免费成人| 欧美mv和日韩mv国产网站| 亚洲色偷偷色噜噜狠狠99网 | 老司机精品视频在线| 久久视频在线看| 久久伊人成人网| 制服诱惑一区二区| 日韩av电影手机在线| 精品日韩在线视频| 亚洲一区欧美| 91大神福利视频在线| 影音先锋国产在线| 成人午夜在线免费| 日韩中文字幕一区二区| 91香蕉在线观看| 欧美自拍偷拍午夜视频| 97在线播放视频| 日韩综合久久| 亚洲国产欧美在线成人app| 四季av中文字幕| 午夜久久免费观看| 欧美做受高潮电影o| 国产精品丝袜黑色高跟鞋| 91蜜桃网址入口| 国产一二三四区在线观看| 中文字幕av一区二区三区佐山爱| 欧美一区二区网站| 亚洲第一综合网| 在线看片一区| 不卡毛片在线看| 久久久久久无码精品大片| 久久久久久黄| 岛国一区二区三区高清视频| 欧美一区二区三区在线观看免费| 午夜免费久久看| 成人在线免费在线观看| 日本不卡三区| 色婷婷综合视频在线观看| 三上悠亚 电影| 人人狠狠综合久久亚洲婷婷| 亚洲女人天堂av| 国产一级片视频| 国内久久婷婷综合| 狼狼综合久久久久综合网| 亚洲av无码国产精品永久一区| 国产日韩一级二级三级| 97成人在线免费视频| √8天堂资源地址中文在线| 91精品福利在线一区二区三区| 妺妺窝人体色WWW精品| 国产精品久久久久久久免费软件 | 天堂电影一区| 精品国产免费视频| 国产九九热视频| 蜜桃国内精品久久久久软件9| 国内精品小视频| 国产污视频网站| 国产精品一区三区| 国产树林野战在线播放| а天堂中文最新一区二区三区| 亚洲精品狠狠操| 日韩aaaaaa| 成人激情av网| 男人插女人视频在线观看| 亚洲高清999| 亚洲成人久久久久| 欧美成人综合色| 黄色亚洲大片免费在线观看| 99精品在线直播| 欧美人与性动交α欧美精品济南到 | 粉嫩aⅴ一区二区三区四区| 国产精品日韩在线| 国产精品怡红院| 亚洲色欲色欲www| 男生和女生一起差差差视频| 欧美精品导航| 国产精品久久7| 涩涩涩在线视频| 亚洲欧美激情另类校园| 蜜臀尤物一区二区三区直播| 中文字幕不卡的av| 中文字幕在线视频精品| 欧美精品一级| 999国产视频| av在线最新| 一区二区欧美在线| 97人妻精品一区二区三区视频| 亚洲欧美精品午睡沙发| 中文字幕一区二区三区人妻在线视频 | 亚洲乱码中文字幕久久孕妇黑人| av日韩精品| 欧美在线视频播放| av免费在线一区二区三区| 91.麻豆视频| 国语对白一区二区| 久久久久久电影| 日韩av自拍偷拍| 亚洲黄色av| 色999日韩自偷自拍美女| 亚洲色图综合| 高清视频欧美一级| 成人精品一区二区三区免费| 91精品国产欧美一区二区成人 | 免费成人结看片| 国产欧美亚洲精品| 亚洲精品久久久久久久久久久久久久| 亚洲成av人片观看| 无码 人妻 在线 视频| 久久99精品久久久久久| 国产美女99p| 户外露出一区二区三区| 久久精品欧美视频| 日韩三级电影网| 欧美一区二区视频在线观看| 国产99久久久| 亚洲精品免费一二三区| 天堂网在线免费观看| 欧美日本不卡| 色一情一乱一伦一区二区三欧美| 久久影院一区二区三区| 97色在线观看| 国产剧情在线| 亚洲天堂第一页| 亚洲国产精彩视频| 欧美天天综合网| 国产无人区码熟妇毛片多| 国产精品美女久久久久av爽李琼| 男人添女人下面高潮视频| 97色伦图片97综合影院| 精品久久久久久乱码天堂| www欧美在线观看| 国产精品久久久久久久久久ktv | 精品国产一区二区三区av片| 国产精品手机在线| 国产一区二区久久久久| 国产精品久在线观看| 天天综合av| 欧美激情日韩图片| 黄在线免费观看| 亚洲香蕉伊综合在人在线视看| 丰满少妇乱子伦精品看片| 亚洲视频在线一区观看| 国产精品情侣呻吟对白视频| 久久综合五月天婷婷伊人| 自拍偷拍激情视频| 国产乱码精品一区二区三区忘忧草 | 91吃瓜在线观看| 欧美成人午夜激情在线| 九色在线播放| 欧美在线观看视频在线| 日产亚洲一区二区三区| 亚洲一区二区偷拍精品| 一区二区三区影视| 《视频一区视频二区| 欧美人与禽zoz0善交| 国产天堂亚洲国产碰碰| 黄色网址在线视频| 欧美专区18| 亚洲理论电影在线观看| 欧美精品不卡| 成年人看的毛片| 国产日韩欧美高清免费| 欧美韩国日本在线| 日韩电影网1区2区| 91大神免费观看| 大白屁股一区二区视频| 熟妇高潮精品一区二区三区| 久久综合九色综合97_久久久| 亚洲精品乱码久久久久久久久久久久 | 国产成人精品999在线观看| 欧美日韩一区二区视频在线观看| 亚洲国产合集| av一区二区在线看| 成人知道污网站| 日本不卡免费新一二三区| 97精品视频| 国产日韩第一页| 99热在线精品观看| 网站一区二区三区| 国产福利一区在线| 亚洲自拍偷拍一区二区| 国产精品久久久久久久久快鸭| 免费在线一级片| 日本韩国欧美国产| 国产夫妻在线观看| 亚洲欧美日韩一区二区三区在线| 日本高清视频在线播放| 性欧美xxxx| 外国成人毛片| 久久久综合香蕉尹人综合网| 91亚洲一区| 波多野结衣家庭教师在线| 久久99蜜桃精品| 国产不卡一二三| 亚洲三级在线免费| 国产成人无码一区二区在线播放| 欧美人妇做爰xxxⅹ性高电影 | 日韩乱码一区二区三区| 日韩欧美精品在线视频| 国产区av在线| 国内精品视频一区| 精品视频国内| 亚洲欧美日韩另类精品一区二区三区 | 丝袜诱惑制服诱惑色一区在线观看 | 99精品国产福利在线观看免费| 波多野结衣作品集| 国产99久久久国产精品潘金 | 亚洲一区精品在线| 中文字幕在线观看视频一区| 亚洲第一精品久久忘忧草社区| 一级毛片视频在线观看| 欧美又大又粗又长| 伊人久久亚洲| 在线国产精品网| 青青草精品视频| 无遮挡aaaaa大片免费看| 亚洲激情自拍视频| 国产主播第一页| 日韩毛片在线观看| av影院在线| 产国精品偷在线| 亚洲精品午夜av福利久久蜜桃| 不要播放器的av网站| fc2成人免费人成在线观看播放| 羞羞在线观看视频| 在线精品观看国产| 欧美男男同志| 欧美重口另类videos人妖| 9l视频自拍蝌蚪9l视频成人| 狠狠精品干练久久久无码中文字幕| 裸体在线国模精品偷拍| 国产又大又粗又爽的毛片| 日韩欧美国产一区二区| 天天干天天爽天天操| 久久久久国产精品www| 欧美国产中文高清| 国产卡一卡二在线| 国产呦精品一区二区三区网站| 婷婷国产成人精品视频| 欧美日韩在线播放| 自拍视频在线| 国产精品一区二区女厕厕| 日韩视频在线观看| 视频二区在线播放| 国产精品第四页| 国产免费黄色片| 九九热这里只有精品6| 一区二区三区四区高清视频| 国产香蕉一区二区三区| 国产精品一级黄| 精品视频久久久久| 亚洲精品电影在线| 性欧美videohd高精| 日韩电影免费观看高清完整| 免费在线观看精品| 国产精品精品软件男同| 欧美一级在线视频| 俺来俺也去www色在线观看| 国产亚洲第一区| 丝袜亚洲另类欧美| 激情高潮到大叫狂喷水| 在线播放欧美女士性生活| 性xxxfreexxxx性欧美| 国产精品久久精品国产| 久久国产欧美| 999福利视频| 日韩精品一区二区三区在线播放| 成全电影大全在线观看| 蜜桃麻豆91| 久久aⅴ国产欧美74aaa| 久久黄色免费网站| 亚洲欧美视频在线| 99视频这里有精品| 免费看欧美黑人毛片| 久久久综合精品| 亚洲一区二区视频在线播放| 欧美日本国产在线| 亚洲aa在线| 国产女同无遮挡互慰高潮91| 亚洲无人区一区| 黄色在线播放| 亚洲一区二区少妇| 亚洲少妇一区| 日韩精品123区| 亚洲精品videossex少妇| 亚洲高清国产拍精品26u| cao在线观看| 国产精品麻豆视频| 色综合视频在线| 国产欧美一区二区三区久久人妖| 国产精品v一区二区三区| 日韩人妻无码一区二区三区| 欧美一区二区三区视频在线观看 | 国产精品自拍网| 亚洲大胆在线|