Autor
|
Tema: El código simple... no funciona. (Leído 4,128 veces)
|
Tachikomaia
Desconectado
Mensajes: 1.412
Hackentifiko!
|
actions for fotograma 1 // Situación inicial. BaseVS = 83; C = 55; actions for fotograma 2 CChar0 = String(C).charAt(0); CChar1 = String(C).charAt(1); if (CChar0<String(BaseVS).charAt(0)) { set (CChar0, CChar0+1); } else if (CChar0>String(BaseVS).charAt(0)) { set (CChar0, CChar0-1); } else if (CChar1<String(BaseVS).charAt(1)) { set (CChar1, C.charAt(1)+1); } else if (CChar1>String(BaseVS).charAt(1)) { set (CChar1, C.charAt(1)-1); } else { // Solución. stop (); } actions for fotograma 3 gotoAndPlay (2);
La idea es que C tenga el valor de BaseVS a través de pistas como "el 1er caracter de C es menor que el 1er caracter de BaseVS", pero lo que el caprichoso código lo que hace es Variable _level0.BaseVS = 83 Variable _level0.C = 55 Variable _level0.CChar0 = "5" Variable _level0.CChar1 = "5" Variable _level0.5 = "51" Debería, para empezar, hacer esto: Variable _level0.BaseVS = 83 Variable _level0.C = 55 Variable _level0.CChar0 = "6" Variable _level0.CChar1 = "5"
|
|
|
En línea
|
|
|
|
EdePC
|
No encuentro referencia a ese Set() supongo que sirve para asignar valores a una variable De todas maneras, y si entiendo bien, tu problema es que estás concatenando caracteres en lugar de hacer una suma, y esto es porque al menos uno de los operandos (en tu caso los dos) son texto. Primero debes de convertir tus caracteres a Números, lo normal es hacerlo en un principio para no irlos poniendo a cada rato: CChar0 = Number(String(C).charAt(0)); CChar1 = Number(String(C).charAt(1)); BChar0 = Number(String(BaseVS).charAt(0)); BChar1 = Number(String(BaseVS).charAt(1)); if ( CChar0 < BChar0 ) { CChar0 = CChar0 + 1; } else if ( CChar0 > BChar0 ) { CChar0 = CChar0 - 1; } else if ( CChar1 < BChar1 ) { CChar1 = C.charAt(1) + 1; } else if ( CChar1 > BChar1 ) { CChar1 = C.charAt(1) - 1; } else { stop(); }
Variable _level0.BaseVS = 83 Variable _level0.C = 55 Variable _level0.CChar0 = 6 Variable _level0.CChar1 = 5 Variable _level0.BChar0 = 8 Variable _level0.BChar1 = 3
|
|
|
En línea
|
|
|
|
Tachikomaia
Desconectado
Mensajes: 1.412
Hackentifiko!
|
Cambia de 5 a 6 pero luego nada... No estás cambiando un caracter sino una variable.
Ni siquiera me está funcionando esto set (C.charAt(0), 7); set (C.charAt(0), "7"); set ("C.charAt(0)", 7); set ("C.charAt(0)", "7"); trace(C.charAt(0));
De ninguna manera el caracter nro0 que es 5 cambia a 7.
|
|
|
En línea
|
|
|
|
EdePC
|
set (C.charAt(0), 7); set (C.charAt(0), "7"); set ("C.charAt(0)", 7); set ("C.charAt(0)", "7"); trace(C.charAt(0));
1. No funciona porque C es del tipo número y no tiene el Método charAt() así que set crea una variable llamada undefined y le asigna el valor "7"2. No funciona por que "C.charAt(0)" debe ser un nombre de variable válido, sin paréntesis 3. Igual que la línea 2 4. Devuelve undefined porque C es del tipo número y no tiene el Método charAt()Si quieres cambiar el primer caracter de la variable C que vale 55 a 7 puedes usar lo siguiente: set( "C", 7 + String(C).charAt(1) ); trace(C); stop();
Solo recuerda que el primer parámetro de Set tienes que ser del tipo String y este debe corresponder al nombre de una variable a declarar o a cambiar su valor
|
|
|
En línea
|
|
|
|
Tachikomaia
Desconectado
Mensajes: 1.412
Hackentifiko!
|
Bien, aunque pareciera que el lenguaje tiene una falla, no debería ser tan complicado, nunca me pasó en este lenguaje ver algo así.
Tampoco funcionó esto: set ((String(C).charAt(0)), 7); set ((String(C).charAt(0)), "7");
|
|
|
En línea
|
|
|
|
EdePC
|
set( (String(C).charAt(0)), 7 ); set( (String(C).charAt(0)), "7" ); stop();
1. Lo que hace es crear una variable llamada 5 y le asigna el valor 72. Cambia el valor de la variable 5 a "7"Por eso al mostrar las variables devuelve: Variable _level0.BaseVS = 83 Variable _level0.C = "75" Variable _level0.CChar0 = 6 Variable _level0.CChar1 = 5 Variable _level0.BChar0 = 8 Variable _level0.BChar1 = 3 Variable _level0.5 = "7"
- Ves, se a creado una variable llamada 5 que al final tiene el valor "7"Set es para crear variables si estas no existen, o asignar valores a las variables si estas ya existen. El primer parámetro de Set debe ser siempre un String que será el nombre de la variable a crear o a cambiar el valor. El segundo parámetro es el valor a asignar. No uses Set , usa la asignación normal de variables que es más estándar en los lenguajes de programación, por ejemplo estos dos códigos son completamente equivalentes: set( "C", 7 + String(C).charAt(1) );
C = 7 + String(C).charAt(1);
Siempre puedes Depurar línea a línea para ver que sucede:
|
|
|
En línea
|
|
|
|
Tachikomaia
Desconectado
Mensajes: 1.412
Hackentifiko!
|
set también puede usar de parámetro una variable, se usa para hacer referencia a otra variable cuyo nombre es en parte el contenido de la variable a nombrar. Sé que es complicado pero... "por ejemplo estos dos códigos son completamente equivalentes" De acuerdo, sólo intenté modificar el char de un modo más directo, como debería ser. No sabía lo de depurar, no sé si mi flash (macromedia 5) tiene la opción. Ya me funciona: Escena 1 actions for fotograma 1 // Situación inicial. BaseVS = 83; C = 55; actions for fotograma 2 CChar0 = Number(String(C).charAt(0)); CChar1 = Number(String(C).charAt(1)); BVSChar0 = Number(String(BaseVS).charAt(0)); BVSChar1 = Number(String(BaseVS).charAt(1)); if (CChar0<BVSChar0) { CChar0 = CChar0+1; C = CChar0+""+CChar1; } else if (CChar0>BVSChar0) { CChar0 = CChar0-1; C = CChar0+""+CChar1; } else if (CChar1<BVSChar1) { CChar1 = CChar1+1; C = CChar0+""+CChar1; } else if (CChar1>BVSChar1) { CChar1 = CChar1-1; C = CChar0+""+CChar1; } else { // Solución. stop (); } actions for fotograma 3 gotoAndPlay (2);
Entre otras cosas ponía "Char0" en vez de "CChar0". PD: Oye, es raro que alguien use Flash ¿lo usas o lo instalaste para mi problema O_O ? Si es así muchas gracias.
|
|
« Última modificación: 2 Febrero 2021, 15:25 pm por Tachikomaia »
|
En línea
|
|
|
|
EdePC
|
Como cultura general hago esas cosas, el Flash CS6 lo recopilé hace tiempo cuando me lo pidieron, ActionScript nunca programé, solo vi algo de código cuando necesité modificarlos o verlos para hacer funcionar unos SWF. También tengo un Curso de ActionScript 2 con Flash 8 bastante viejo, he visto unos cuantos capítulos para ver más o menos el uso de Flash con ActionScript y su depurador para tu problema. - El curso lo puedes descargar desde acá: https://we.tl/t-xF0cLMFPnzAl final todo conocimiento es válido porque estos se encadenan con otros, instalar programas, crear ISO, instalar máquinas virtuales, buscar en Internet, entender otros lenguajes, etc, etc, etc así uno gana destreza para enfrentarse a problemas similares o diferentes con más soltura.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Necesito codigo simple.
Programación Visual Basic
|
newbY
|
1
|
1,751
|
9 Noviembre 2007, 00:57 am
por skapunky
|
|
|
Este codigo en C# no funciona (es simple)
.NET (C#, VB.NET, ASP)
|
& eDu &
|
1
|
2,757
|
22 Junio 2008, 23:08 pm
por MANULOMM
|
|
|
No funciona este simple codigo
Programación Visual Basic
|
luis456
|
6
|
5,429
|
21 Septiembre 2013, 08:50 am
por luis456
|
|
|
Por que no me funciona este simple codigo?
Programación C/C++
|
CelDavid
|
8
|
3,665
|
10 Mayo 2019, 06:06 am
por RayR
|
|
|
¿Lowi no funciona? Así de simple se soluciona su problema de red
Noticias
|
wolfbcn
|
0
|
1,435
|
4 Diciembre 2019, 19:26 pm
por wolfbcn
|
|