mirror of
https://github.com/flutter/samples.git
synced 2026-07-09 18:43:03 +00:00
@@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
export 'wonky_char.dart';
|
||||
export 'wonky_anim_palette.dart';
|
||||
export 'rotator_puzzle.dart';
|
||||
export 'lightboxed_panel.dart';
|
||||
export 'fragment_shaded.dart';
|
||||
export 'lightboxed_panel.dart';
|
||||
export 'rotator_puzzle.dart';
|
||||
export 'wonky_anim_palette.dart';
|
||||
export 'wonky_char.dart';
|
||||
|
||||
@@ -62,7 +62,7 @@ class FragmentShadedState extends State<FragmentShaded>
|
||||
initializeFragmentProgramsAndBuilder();
|
||||
}
|
||||
|
||||
void initializeFragmentProgramsAndBuilder() async {
|
||||
Future<void> initializeFragmentProgramsAndBuilder() async {
|
||||
if (FragmentShaded.fragmentPrograms.isEmpty) {
|
||||
for (String s in FragmentShaded.fragmentProgramNames) {
|
||||
FragmentShaded.fragmentPrograms[s] =
|
||||
|
||||
@@ -18,7 +18,7 @@ class LightboxedPanel extends StatefulWidget {
|
||||
final Color cardBgColor;
|
||||
|
||||
const LightboxedPanel({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.pageConfig,
|
||||
required this.content,
|
||||
this.onDismiss,
|
||||
@@ -27,7 +27,7 @@ class LightboxedPanel extends StatefulWidget {
|
||||
this.buildButton = true,
|
||||
this.lightBoxBgColor = const Color.fromARGB(200, 255, 255, 255),
|
||||
this.cardBgColor = Colors.white,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
State<LightboxedPanel> createState() => _LightboxedPanelState();
|
||||
|
||||
@@ -3,12 +3,14 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
import 'dart:math';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'components.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:ui' as ui;
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
|
||||
import '../model/puzzle_model.dart';
|
||||
import '../page_content/pages_flow.dart';
|
||||
import 'components.dart';
|
||||
|
||||
class RotatorPuzzle extends StatefulWidget {
|
||||
final PageConfig pageConfig;
|
||||
@@ -25,7 +27,7 @@ class RotatorPuzzle extends StatefulWidget {
|
||||
final double tileScaleModifier;
|
||||
|
||||
const RotatorPuzzle({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.pageConfig,
|
||||
required this.numTiles,
|
||||
required this.puzzleNum,
|
||||
@@ -37,7 +39,7 @@ class RotatorPuzzle extends StatefulWidget {
|
||||
required this.tileShadedStringAnimDuration,
|
||||
this.tileShadedStringAnimSettings = const [],
|
||||
this.tileScaleModifier = 1.0,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
State<RotatorPuzzle> createState() => RotatorPuzzleState();
|
||||
@@ -258,7 +260,7 @@ class RotatorPuzzleTile extends StatefulWidget {
|
||||
final int col;
|
||||
|
||||
RotatorPuzzleTile({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.tileID,
|
||||
required this.row,
|
||||
required this.col,
|
||||
@@ -271,7 +273,7 @@ class RotatorPuzzleTile extends StatefulWidget {
|
||||
required this.animationSettings,
|
||||
required this.tileShadedStringAnimDuration,
|
||||
required this.tileScaleModifier,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
final State<RotatorPuzzleTile> tileState = RotatorPuzzleTileState();
|
||||
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flutter/foundation.dart' show kDebugMode;
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class WonkyChar extends StatefulWidget {
|
||||
final String text;
|
||||
@@ -13,13 +14,13 @@ class WonkyChar extends StatefulWidget {
|
||||
final int animDurationMillis;
|
||||
final List<WonkyAnimSetting> animationSettings;
|
||||
const WonkyChar({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.text,
|
||||
required this.size,
|
||||
this.baseRotation = 0,
|
||||
this.animDurationMillis = 1000,
|
||||
this.animationSettings = const <WonkyAnimSetting>[],
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
State<WonkyChar> createState() => WonkyCharState();
|
||||
@@ -79,20 +80,21 @@ class WonkyCharState extends State<WonkyChar>
|
||||
Widget build(BuildContext context) {
|
||||
List<FontVariation> fontVariations = [];
|
||||
for (int i = 0; i < _fvAxes.length; i++) {
|
||||
fontVariations.add(FontVariation(_fvAxes[i], _fvAnimations[i].value));
|
||||
fontVariations
|
||||
.add(FontVariation(_fvAxes[i], _fvAnimations[i].value as double));
|
||||
}
|
||||
return Transform(
|
||||
alignment: Alignment.center,
|
||||
transform: Matrix4.translationValues(
|
||||
_offsetXAnimation.value, _offsetYAnimation.value, 0)
|
||||
transform: Matrix4.translationValues(_offsetXAnimation.value as double,
|
||||
_offsetYAnimation.value as double, 0)
|
||||
..scale(_scaleAnimation.value)
|
||||
..rotateZ(widget.baseRotation + _rotationAnimation.value),
|
||||
..rotateZ(widget.baseRotation + (_rotationAnimation.value as double)),
|
||||
child: IgnorePointer(
|
||||
child: Text(
|
||||
widget.text,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: _colorAnimation.value,
|
||||
color: _colorAnimation.value as Color?,
|
||||
fontFamily: 'Amstelvar',
|
||||
fontSize: widget.size,
|
||||
fontVariations: fontVariations,
|
||||
@@ -114,13 +116,15 @@ class WonkyCharState extends State<WonkyChar>
|
||||
);
|
||||
late Animation animation;
|
||||
if (s.property == 'color') {
|
||||
animation =
|
||||
ColorTween(begin: s.fromTo.fromValue(), end: s.fromTo.toValue())
|
||||
.animate(curve);
|
||||
animation = ColorTween(
|
||||
begin: s.fromTo.fromValue() as Color?,
|
||||
end: s.fromTo.toValue() as Color?)
|
||||
.animate(curve);
|
||||
} else {
|
||||
animation =
|
||||
Tween<double>(begin: s.fromTo.fromValue(), end: s.fromTo.toValue())
|
||||
.animate(curve);
|
||||
animation = Tween<double>(
|
||||
begin: s.fromTo.fromValue() as double,
|
||||
end: s.fromTo.toValue() as double)
|
||||
.animate(curve);
|
||||
}
|
||||
if (s.type == 'fv') {
|
||||
_fvAxes.add(s.property);
|
||||
@@ -168,13 +172,13 @@ class WonkyCharState extends State<WonkyChar>
|
||||
}
|
||||
}
|
||||
|
||||
abstract class WCRange {
|
||||
abstract class WCRange<T> {
|
||||
WCRange();
|
||||
fromValue() {}
|
||||
toValue() {}
|
||||
T fromValue();
|
||||
T toValue();
|
||||
}
|
||||
|
||||
class RangeColor implements WCRange {
|
||||
class RangeColor implements WCRange<Color> {
|
||||
Color from;
|
||||
Color to;
|
||||
RangeColor({required this.from, required this.to});
|
||||
@@ -189,7 +193,7 @@ class RangeColor implements WCRange {
|
||||
}
|
||||
}
|
||||
|
||||
class RangeDbl implements WCRange {
|
||||
class RangeDbl implements WCRange<double> {
|
||||
double from;
|
||||
double to;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user