0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Appsで飛行機🛫をクルクルまわす🛬 - ボタンとスライダー

Last updated at Posted at 2024-07-13

はじめに

Qiita Engineer Festa 2024 の記事投稿キャンペーンもあとわずかですね。
ネタに悩むところです。

とりあえず思いついたので、Power Apps飛行機🛫をクルクルまわしたいと思います。🛬

動画はTwitterを参照してください🛫🛬

今回はPower Appsの

上記で機能を実現します。

SVGや動画を使っていないことがポイントです。

構成要素

今回は画面が二つのシンプルな構成です。
片方は飛行機が実際に動く画面🛫🛬、片方はボタンのみの画面です。

飛行機が実際に動く画面🛫🛬がメインなので、コチラに焦点を当てて紹介します。
要素は

  • sliderMove - アイコンを実際に動かすスライダーコントロール
  • txtLoading - テキストラベル
  • btnLanding - 別の画面に遷移
  • icoFlying - モダンのボタンコントロール 飛行機のアイコンのみ表示✈

画面の名前はAnimationScreenとします。

image.png

初期設定

まずは飛行機が実際に動く画面🛫🛬 AnimationScreenOnVisibleプロパティに下記を設定します。

OnVisible
Set(
    CenterX,
    Self.Width / 2
);
Set(
    CenterY,
    Self.Height / 2
);
Set(
    Radius,
    (CenterX / 2)
);
Set(
    Angle,
    0
);
  • CenterX - 画面のX軸の中心
  • CenterY - 画面のY軸の中心
  • Radius - 飛行機が動く半径
  • Angle - 角度 - スライダーのDefault値になる値

こちらを設定します。
画面が表示される段階で設定が初期化されるということになります。

スライダー

今回の挙動は、Power Appsスライダー コントロール(クラシック)で実現しています。

スライダー コントロールにおいて

  1. Default(既定)に変数を設定
  2. OnChangeプロパティにてDefault(既定)の変数を変更

上記をすることで、実質的に無限ループを実現しています。

今回は円形の動きをするため、

  • Max(最大)を360
  • Min(最小)を0
    上記の通り設定し、
  • Default(既定)を変数であるAngle
    OnChangeに下記の式を設定してください。
OnChange
If(Angle >= Self.Max, Set(Angle, 0), Set(Angle, Angle + 2));

「スライダーの最大値を超えたら、変数を初期化する」というイメージです。
アイコンの動きの速度はSet(Angle, Angle + 2)コチラが該当します。
2は個人的にちょうどいい速さだったのですが、設定値を変えることで、動きの速さをコントロールできます。

スライダーの仕込みはこちらで完了です。

ボタン コントロール - 飛行機のアイコン🛫

さて飛行機のアイコンを動かしましょう。

Power Appsモダン コントロールのボタンにおいて、アイコンが使えます

しかも、もうプレビュー段階ではありません!オシャレなのでガンガン使いましょう!!
2024.07.13時点

Layout'ButtonCanvas.Layout'.IconOnly(アイコンのみ)に設定し、デザインを整えます。

コントロールの動きは、XYで制御します。
こちらが肝なので解説を詳しくしていきます。

X座標

画面の中央のX座標を起点に円を描きます。

X
CenterX + Radius * Cos(sliderMove.Value * Pi() / 180)

Radiusが円の半径です。

  • Cos(Angle * Pi() / 180) 角度をラジアンに変換し、その角度のコサイン値を計算
  • Angle: 現在の角度(度単位)
  • Pi(): 円周率(約3.14159)

上記のようにほとんど標準の計算式で構成されます。
コサインなんて今ほとんど頭に登場しませんね💦

Cos 関数、Pi関数両方ともPower Appsの標準の関数です。

Y座標

画面の中央のY座標を起点に円を描きます。

Y
CenterY + Radius * Sin(sliderMove.Value * Pi() / 180)

ほとんどX座標と同様です。
違いはCos(Angle * Pi() / 180)Sin(sliderMove.Value * Pi() / 180)になったことくらい。

  • Sin(Angle * Pi() / 180): 角度をラジアンに変換し、その角度のサイン値を計算
  • Angle: 現在の角度(度単位)
  • Pi(): 円周率(約3.14159)

サインも覚えていないー💦

ラジアンは円の半径の値の弧をに対する角度です。
これで動きを描く際の距離を計算しています。

Sin 関数もPower Appsの標準の関数です。

アイコンの角度

モダン コントロールのボタンIconRotationプロパティがあります。
こちらでアイコンの角度を決められるため、調整したいと思います。

X
Angle + 90

既定で左向きの飛行機のアイコンのため、角度を90度加えることで向きをそろえています。
Angleは0から360度の中で決められるため、sliderの値と同じ値になります。

Takeoff

こちらで飛行機の動きを描画できます!
SVGや動画を使っているわけではありません!

image.png

Coolですね。
想像で可能性は無限大です!

皆様よきPower Lifeを!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?