ActionScript - Convertir función JS a AS y pintar botón

 
Vista:

Convertir función JS a AS y pintar botón

Publicado por Jorge (1 intervención) el 25/07/2018 10:21:05
Hola,

Necesitaría dos cosas:

1-convertir una funcion de JavaScript a ActionScript, la función sería:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script>
(function () {
 
varinput = [10, 7, 3, 12, 2],
tag = document.querySelector('#output-result'),
myFunc = function (array) {
varoutput = [];
for (vari = 0; i < array.length; i++) {
if (i < array.length - 1)
output.push(
Math.abs(
array[i] - array[i + 1]
)
);
}
returnoutput;
};
 
tag.textContent = '[' + myFunc(input) + ']';
 
}());
</script>


2-Pintar un botón con AS. que tenga este diseño:

E3SInPE


Debería ser flexible para adaptarse a varios anchos y altos, más o menos con ese padding y margenes. (IC es un sample de icono).


Si alguien me puede ayudar se lo agradecería.


Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Conversión de función JavaScript y creación de botón personalizado

Publicado por Alejandro (369 intervenciones) el 29/06/2023 17:00:54
1. Conversión de la función de JavaScript a ActionScript:

1
2
3
4
5
6
7
8
9
10
11
12
13
var input:Array = [10, 7, 3, 12, 2];
var tag:TextField = new TextField();
addChild(tag);
 
function myFunc(array:Array):Array {
  var output:Array = [];
  for (var i:int = 0; i < array.length - 1; i++) {
    output.push(Math.abs(array[i] - array[i + 1]));
  }
  return output;
}
 
tag.text = '[' + myFunc(input).join(', ') + ']';

En ActionScript, puedes utilizar un `TextField` para mostrar el resultado en lugar de seleccionar un elemento del DOM como se hace en JavaScript. La función `myFunc` se ha convertido directamente y el resultado se asigna al texto del `TextField` `tag` utilizando `tag.text`.

2. Creación de un botón con diseño personalizado en ActionScript:

Aquí tienes un ejemplo de cómo crear un botón con un diseño personalizado similar al que proporcionaste:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import flash.display.Sprite;
import flash.display.Shape;
import flash.text.TextField;
import flash.text.TextFormat;
 
// Variables para ajustar el diseño
var buttonWidth:Number = 150;
var buttonHeight:Number = 40;
var cornerRadius:Number = 10;
var backgroundColor:uint = 0x3366CC;
var textColor:uint = 0xFFFFFF;
var iconMargin:Number = 8;
var iconSize:Number = buttonHeight - iconMargin * 2;
 
// Crear contenedor para el botón
var button:Sprite = new Sprite();
addChild(button);
 
// Crear fondo redondeado
var background:Shape = new Shape();
background.graphics.beginFill(backgroundColor);
background.graphics.drawRoundRect(0, 0, buttonWidth, buttonHeight, cornerRadius);
background.graphics.endFill();
button.addChild(background);
 
// Crear icono (sustituir con tu propio icono)
var icon:Shape = new Shape();
icon.graphics.beginFill(textColor);
icon.graphics.drawRect(iconMargin, iconMargin, iconSize, iconSize);
icon.graphics.endFill();
button.addChild(icon);
 
// Crear texto del botón
var label:TextField = new TextField();
label.text = "IC";
label.textColor = textColor;
label.selectable = false;
label.width = buttonWidth - iconSize - iconMargin * 3;
label.height = buttonHeight;
label.x = iconSize + iconMargin * 2;
label.setTextFormat(new TextFormat("_sans", 14, null, true));
button.addChild(label);

En este ejemplo, se utiliza un `Sprite` como contenedor para el botón. Se dibuja un fondo redondeado utilizando el `Shape` llamado `background` y se agrega al `Sprite` `button`. Luego, se crea un icono utilizando otro `Shape` llamado `icon` y se agrega al `Sprite` `button`. Por último, se crea un `TextField` llamado `label` para el texto del botón, se establecen las propiedades de formato y se agrega al `Sprite` `button`.

Puedes ajustar los valores de las variables en la parte superior del código para adaptar el tamaño y los colores del botón según tus necesidades.

Espero que esto te sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar