SWISHmax, un serio competidor para Flash, y asequible

  • SWiSHmax
  • Born
  • Born
  • No Avatar
  • Registrado: Nov 03, 2003
  • Mensajes: 3
  • Status: Offline

Nota Noviembre 4th, 2003, 10:32 pm

Hi Cuerock,

Por supuesto, su absurdo, pero sigo appare notly ver gente inteligente SWiSH culpar de todos los males del mundo Flash.
Acabo de encontrar otro: http://www.svachon.com/articles/?ref=2003_09_12

Quote:
¡Odio a incluso mencionar la "s" la palabra, pero no es Flash Swish. Al menos no era antes de MX 2004. Es agradable ser capaz de decir "Yo uso Flash, Swish no" a las personas que piensan películas Flash son la cosa más fácil del planeta para crear. Poco así tener miles de novatos de tiempo llamando a sí mismos "Flash expertos" en lugar de "Swish expertos". Swish presentó una ola terrible de los sitios Flash, MX 2004 y traerá a una nueva. Así que, prepárate.

Por lo tanto, usted vaya, todos sus culpa nuestra! Me gusta el "Yo uso Flash, Swish no" poco...por favor, Flash no es ciencia de cohetes.

He olvidado mencionar, también tenemos un foro SWiSHscript para cualquiera que esté interesado:
http://www.swishzone.com/forums/index.php?act=SF&f=23

Cheers, David
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Noviembre 4th, 2003, 10:32 pm

  • the_real_tisse
  • Graduate
  • Graduate
  • No Avatar
  • Registrado: Sep 20, 2003
  • Mensajes: 116
  • Loc: Belgium
  • Status: Offline

Nota Enero 6th, 2004, 4:52 pm

Hola David

Sí, por último, un debate sensato sobre él :)

saludos
Tisse
  • Blackwater1
  • Born
  • Born
  • No Avatar
  • Registrado: Nov 18, 2003
  • Mensajes: 2
  • Status: Offline

Nota Marzo 29th, 2004, 8:00 am

Es evidente que el http://www.blackwaterrock.com sitio ya no está en Swish. La relación entre el diseñador y la banda terminó. ¿Amor sugerencias y reflexiones sobre el formato HTML, aunque la vista.

Mejores Deseos

Blackwater
  • JLM
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Oct 24, 2004
  • Mensajes: 5
  • Loc: Oxford
  • Status: Offline

Nota Octubre 24th, 2004, 9:04 pm

The_real_tisse

Quote:
API de dibujo


cuenta de este foro cuando se va a través de registros del sitio, creo que la relación se rompe ahora, pero no mencionó nada acerca de mí :) (JLM-moderador Justin especialización Rainbowfly.net Flash / diseño SWiSH / desarrollo).

Así que pensé que iba a añadir a este debate serio. Empecé el primer flash jugando con máscaras y preadolescentes lentamente aprender AS1 y luego tuvo la oportunidad de probar SwishMax en un momento en que me estaba metiendo POO así que empujé SwishMax programación orientada a objetos para ver cómo se puede ahora utilizar AS2 y estoy estudiando la forma hacer similar en SwishMax. Una de las ventajas que encuentro de SwishMax es que entiendo mejor usando flash ¡zas! He sido una de las personas que ha tratado de empujar los límites y debo decir que swishzone han sido muy buenos para mejorar las cosas SwishMax agregando, no siempre les digo a todos nosotros, pero el software es siempre la mejora de las actualizaciones periódicas se puede descargar y desde mi inital pruebas de que ha mejorado ni fin. Yo diría cualquier persona involucrada en un sitio que utiliza flash4 jugador debe usar sin duda SwishMax por encima de cualquier versión de flash, ya que es más fácil de script más cosas para el flash 4. No tener attachMovie es una de las mayores bajadas dejar sobre SwishMax, los adolescentes que prefiero sobre los efectos, pero creo que se debe más a utilizar el flash más y más, y es traceBitmap echaremos muchísimo de menos en swishmax, sino que se rompen en pedazos en el rumor es una herramienta de creación de que me gustaría que se extendió a romper un sprite arriba. Cosas como la función de correo electrónico y Math.sindeg () acaba de hacer la vida más fácil. Yo no soy un fan de código de distribución y de reconocer el modelo rumor se fomentan, a pesar de que está mejor organizada y puedo ver mejor una fusión más coherente de swishscript en swishAS2. De hecho SwishMax puede utilizar AS1 y su propia estructura le permite trabajar en una casa muy AS2 sin la sintaxis y sin herencia, pero después de leer Moocks libro AS2 puedo ver que la composición funciona muy bien en vueltas, aunque las pruebas que normalmente no se puede hacer en el jugador interior y un LocalConnection a parpadear a las trazas de salida es mi técnica preferida, no exactamente satisfactorio! De todos modos aquí es una sección de secuencia de comandos que muestra cómo un sprite es utilizado como una clase de composición.

Código: [ Select ]
//*** class pictureDisplay ***/
onLoad(){
  
  var noPictures:Number;
  var location:Sprite;
  var size:Sprite;
  var maskArea:Sprite;
  var newPicButton:Sprite;
  var status:Boolean;
  var clip:Sprite;
  var oldclip:Sprite;
  var distanceX:Number;
  var distanceY:Number;
  var thisInstance:pictureDisplay;
  var loadInterval;
}
function init(location_:Sprite, size_:Sprite,maskArea_:Sprite,newPicButton_:Sprite,_bar:Sprite,_rotator:Sprite){
  thisInstance=this;
  noPictures=3;
  location=location_;
  
  //setup buttons
  size=size_;
  maskArea=maskArea_;
  newPicButton=newPicButton_;
  rotator=_rotator;
  bar=_bar;
  
  status=true;
  
  // setup control
  newPicButton.onRelease=newPic;
  size.onPress=sizePress;
  size.onRelease=sizeRelease;
  bar.onPress=barPress;
  bar.onRelease=barRelease;
  rotator.onRelease=rotRelease;
  rotator.onPress=rotPress;
   
  //load first Picture
  rescale(size,maskArea);
  newPic(); 
 
}
//load a picture
function newPic(){
  clip.swapDepths(oldClip);
  status=!status;
  var genNum=noPictures.Rnd(noPictures);
  var pic = "Picture"+genNum+".jpg";
  oldClip=clip;
  clip=location.createEmptyMovieClip("clip"+status*1,100);
  //place off screen untill loaded
  clip._x=1000;
  clip._y=1000;
  [clip].loadMovie(pic);
  if(loadInterval!=undefined){ output("recreate");
    clearInterval(loadInterval);
  }
  //Problem line
  //Var
  loadInterval = setInterval(thisInstance, "assessLoad", 40); //setInterval(_root, "assessLoad", 40);

}
function assessLoad() {output("assessload");
  maskArea.beginFill(0xff0000,100);
  maskArea.moveTo(-maskArea._width/2,-maskArea._height/2);
  maskArea.lineTo(maskArea._width*clip.getBytesLoaded()/clip.getBytesTotal()-maskArea._width/2,-maskArea._height/2);
  maskArea.lineTo(maskArea._width*clip.getBytesLoaded()/clip.getBytesTotal()-maskArea._width/2,maskArea._height/2);
  maskArea.lineTo(-maskArea._width/2,maskArea._height/2);
  maskArea.lineTo(-maskArea._width/2,-maskArea._height/2);
  if ((clip.getBytesLoaded()/clip.getBytesTotal() == 1)&&(clip._width>4)) {
    output("fadeIn");
    rescale(size);
    clip._alpha=1;
    clip._visible=true;
    trace(clip);
    clip.onEnterFrame=fadeIn;
    
    clearInterval(loadInterval);
    
  }

}
function fadeIn(){
  if(this._alpha<100){
    this._alpha+=5;
  } else {
    this._alpha=100;
    this.onEnterFrame=null;
  }
}
//position control
function barPress(){
  maskArea._visible=false;
  size._visible=false;
  this.startDragUnlocked();
  this.onEnterFrame=onEFbar;
  distanceY=clip._y-this._y;
  distanceX=clip._x-this._x;
}
function onEFbar(){
  clip._x=this._x+distanceX;
  clip._y=this._y+distanceY;
  size._x=clip._x+clip._width+size._width/2;
  size._y=clip._y+clip._height+size._height/2;
}
function barRelease(){
  this.stopDrag();
  clip._x=this._x+distanceX;
  clip._y=this._y+distanceY;//this._height;
  size._x=clip._x+clip._width+size._width/2;
  size._y=clip._y+clip._height+size._height/2;
  maskArea._x=clip._x+clip._width/2;
  maskArea._y=clip._y+clip._height/2;
  size._x=maskArea._x+maskArea._width/2;
  size._y=maskArea._y+maskArea._height/2;
  size._visible=true;
  maskArea._visible=true;
  this.onEnterFrame=null;
}
//rotation control
function rotPress(){
  this.startDragUnlocked();
  this.onEnterFrame=onEFrot;
}
function onEFrot(){
  rotate2(this);
}
function rotRelease(){
  this.stopDrag();
  rotate(this);
  delete this.onEnterFrame;
}
function rotate(this_){
  var zeroAngle=Math.atan2deg(-maskArea._height,-maskArea._width);
  clip._rotation=360+zeroAngle+Math.atan2deg((-maskArea._y+this_._y),(-maskArea._x+this_._x));
  
  clip._x=maskArea._x-clip._width/2;
  clip._y=maskArea._y-clip._height/2;
  rescale(clip);
  output(clip._rotation);
  clip._x+=math.abs((-clip._height)/2*Math.sinDeg(clip._rotation));
  //clip._y+=-clip._height/2+math.abs((-clip._height)/2*Math.cosDeg(clip._rotation));
  
}
function rotate2(this_){
  var zeroAngle=Math.atan2deg(-maskArea._height,-maskArea._width);
  clip._rotation=360+zeroAngle+Math.atan2deg((-maskArea._y+this_._y),(-maskArea._x+this_._x));
  
  clip._x=maskArea._x-clip._width/2;
  clip._y=maskArea._y-clip._height/2;
  rescale2(clip);
  output(clip._rotation);
  clip._x+=math.abs((-clip._height)/2*Math.sinDeg(clip._rotation));
  //clip._y+=-clip._height/2+math.abs((-clip._height)/2*Math.cosDeg(clip._rotation));
  
}
//size control
function sizePress(){
  maskArea._visible=true;
  this.startDragUnLocked();
  this.onEnterFrame=onEFsize;
}
function onEfsize(){
  rescale(this,_root.myMask)
}
function sizeRelease(){
  maskArea._visible=true;
  this.stopDrag();
  rescale(this);
  size._x=maskArea._x+maskArea._width/2;
  size._y=maskArea._y+maskArea._height/2;
  rotator._x=maskArea._x-maskArea._width/2-rotator._width/2;
    rotator._y=maskArea._y+maskArea._height/2+rotator._width/2;
  this.onEnterFrame=null;
}
function rescale(mc:Sprite){output("rescale");
    maskArea._width=2*Math.abs(mc._x-maskArea._x);
    maskArea._height=2*Math.abs(mc._y-maskArea._y);
    
    scale(clip,maskArea);
    scale(oldClip,maskArea);
    bar._width=maskArea._width;
    bar._x=maskArea._x+maskArea._width/2-bar._width/2;
    bar._y=maskArea._y-maskArea._height/2-bar._height;
    rotator._x=maskArea._x-maskArea._width/2-rotator._width/2;
    rotator._y=maskArea._y+maskArea._height/2+rotator._width/2;
    
    
}
function rescale2(mc:Sprite){output("rescale");
    maskArea._width=2*Math.abs(mc._x-maskArea._x);
    maskArea._height=2*Math.abs(mc._y-maskArea._y);
    
    scale(clip,maskArea);
    scale(oldClip,maskArea);
    bar._width=maskArea._width;
    bar._x=maskArea._x+maskArea._width/2-bar._width/2;
    bar._y=maskArea._y-maskArea._height/2-bar._height;
    //rotator._x=maskArea._x-maskArea._width/2-rotator._width/2;
    //rotator._y=maskArea._y+maskArea._height/2+rotator._width/2;
}
function scale(mc:sprite,m:Sprite){
  //with(mc){
    output("scale "+mc);
    mc._xscale=mc._yscale=100;
    var p=new Object({H:mc._height/m._height,W:mc._width/m._width});
    p=(p.H>p.W) ? p.H : p.W;
    mc._yscale=mc._xscale=100/p;
    mc._x=m._x-mc._width/2, mc._y=m._y-mc._height/2;
  //}
}
onLoad(){
Number.prototype.Rnd=function(){
 
  var num=this;
  var newRnd=Math.round(Math.random()*(num-1)-(-1));
  while((newRnd==this.Rnd.old)||(newRnd==this.Rnd.varyold)){
      newRnd=Math.round(Math.random()*(num-1)-(-1));
    }
    trace( this.Rnd.veryold+ " "+this.Rnd.old+" "+newRnd);
  this.Rnd.veryold=this.Rnd.old;
  this.Rnd.old=newRnd;
  return(newRnd);
 
};
}
  1. //*** class pictureDisplay ***/
  2. onLoad(){
  3.   
  4.   var noPictures:Number;
  5.   var location:Sprite;
  6.   var size:Sprite;
  7.   var maskArea:Sprite;
  8.   var newPicButton:Sprite;
  9.   var status:Boolean;
  10.   var clip:Sprite;
  11.   var oldclip:Sprite;
  12.   var distanceX:Number;
  13.   var distanceY:Number;
  14.   var thisInstance:pictureDisplay;
  15.   var loadInterval;
  16. }
  17. function init(location_:Sprite, size_:Sprite,maskArea_:Sprite,newPicButton_:Sprite,_bar:Sprite,_rotator:Sprite){
  18.   thisInstance=this;
  19.   noPictures=3;
  20.   location=location_;
  21.   
  22.   //setup buttons
  23.   size=size_;
  24.   maskArea=maskArea_;
  25.   newPicButton=newPicButton_;
  26.   rotator=_rotator;
  27.   bar=_bar;
  28.   
  29.   status=true;
  30.   
  31.   // setup control
  32.   newPicButton.onRelease=newPic;
  33.   size.onPress=sizePress;
  34.   size.onRelease=sizeRelease;
  35.   bar.onPress=barPress;
  36.   bar.onRelease=barRelease;
  37.   rotator.onRelease=rotRelease;
  38.   rotator.onPress=rotPress;
  39.    
  40.   //load first Picture
  41.   rescale(size,maskArea);
  42.   newPic(); 
  43.  
  44. }
  45. //load a picture
  46. function newPic(){
  47.   clip.swapDepths(oldClip);
  48.   status=!status;
  49.   var genNum=noPictures.Rnd(noPictures);
  50.   var pic = "Picture"+genNum+".jpg";
  51.   oldClip=clip;
  52.   clip=location.createEmptyMovieClip("clip"+status*1,100);
  53.   //place off screen untill loaded
  54.   clip._x=1000;
  55.   clip._y=1000;
  56.   [clip].loadMovie(pic);
  57.   if(loadInterval!=undefined){ output("recreate");
  58.     clearInterval(loadInterval);
  59.   }
  60.   //Problem line
  61.   //Var
  62.   loadInterval = setInterval(thisInstance, "assessLoad", 40); //setInterval(_root, "assessLoad", 40);
  63. }
  64. function assessLoad() {output("assessload");
  65.   maskArea.beginFill(0xff0000,100);
  66.   maskArea.moveTo(-maskArea._width/2,-maskArea._height/2);
  67.   maskArea.lineTo(maskArea._width*clip.getBytesLoaded()/clip.getBytesTotal()-maskArea._width/2,-maskArea._height/2);
  68.   maskArea.lineTo(maskArea._width*clip.getBytesLoaded()/clip.getBytesTotal()-maskArea._width/2,maskArea._height/2);
  69.   maskArea.lineTo(-maskArea._width/2,maskArea._height/2);
  70.   maskArea.lineTo(-maskArea._width/2,-maskArea._height/2);
  71.   if ((clip.getBytesLoaded()/clip.getBytesTotal() == 1)&&(clip._width>4)) {
  72.     output("fadeIn");
  73.     rescale(size);
  74.     clip._alpha=1;
  75.     clip._visible=true;
  76.     trace(clip);
  77.     clip.onEnterFrame=fadeIn;
  78.     
  79.     clearInterval(loadInterval);
  80.     
  81.   }
  82. }
  83. function fadeIn(){
  84.   if(this._alpha<100){
  85.     this._alpha+=5;
  86.   } else {
  87.     this._alpha=100;
  88.     this.onEnterFrame=null;
  89.   }
  90. }
  91. //position control
  92. function barPress(){
  93.   maskArea._visible=false;
  94.   size._visible=false;
  95.   this.startDragUnlocked();
  96.   this.onEnterFrame=onEFbar;
  97.   distanceY=clip._y-this._y;
  98.   distanceX=clip._x-this._x;
  99. }
  100. function onEFbar(){
  101.   clip._x=this._x+distanceX;
  102.   clip._y=this._y+distanceY;
  103.   size._x=clip._x+clip._width+size._width/2;
  104.   size._y=clip._y+clip._height+size._height/2;
  105. }
  106. function barRelease(){
  107.   this.stopDrag();
  108.   clip._x=this._x+distanceX;
  109.   clip._y=this._y+distanceY;//this._height;
  110.   size._x=clip._x+clip._width+size._width/2;
  111.   size._y=clip._y+clip._height+size._height/2;
  112.   maskArea._x=clip._x+clip._width/2;
  113.   maskArea._y=clip._y+clip._height/2;
  114.   size._x=maskArea._x+maskArea._width/2;
  115.   size._y=maskArea._y+maskArea._height/2;
  116.   size._visible=true;
  117.   maskArea._visible=true;
  118.   this.onEnterFrame=null;
  119. }
  120. //rotation control
  121. function rotPress(){
  122.   this.startDragUnlocked();
  123.   this.onEnterFrame=onEFrot;
  124. }
  125. function onEFrot(){
  126.   rotate2(this);
  127. }
  128. function rotRelease(){
  129.   this.stopDrag();
  130.   rotate(this);
  131.   delete this.onEnterFrame;
  132. }
  133. function rotate(this_){
  134.   var zeroAngle=Math.atan2deg(-maskArea._height,-maskArea._width);
  135.   clip._rotation=360+zeroAngle+Math.atan2deg((-maskArea._y+this_._y),(-maskArea._x+this_._x));
  136.   
  137.   clip._x=maskArea._x-clip._width/2;
  138.   clip._y=maskArea._y-clip._height/2;
  139.   rescale(clip);
  140.   output(clip._rotation);
  141.   clip._x+=math.abs((-clip._height)/2*Math.sinDeg(clip._rotation));
  142.   //clip._y+=-clip._height/2+math.abs((-clip._height)/2*Math.cosDeg(clip._rotation));
  143.   
  144. }
  145. function rotate2(this_){
  146.   var zeroAngle=Math.atan2deg(-maskArea._height,-maskArea._width);
  147.   clip._rotation=360+zeroAngle+Math.atan2deg((-maskArea._y+this_._y),(-maskArea._x+this_._x));
  148.   
  149.   clip._x=maskArea._x-clip._width/2;
  150.   clip._y=maskArea._y-clip._height/2;
  151.   rescale2(clip);
  152.   output(clip._rotation);
  153.   clip._x+=math.abs((-clip._height)/2*Math.sinDeg(clip._rotation));
  154.   //clip._y+=-clip._height/2+math.abs((-clip._height)/2*Math.cosDeg(clip._rotation));
  155.   
  156. }
  157. //size control
  158. function sizePress(){
  159.   maskArea._visible=true;
  160.   this.startDragUnLocked();
  161.   this.onEnterFrame=onEFsize;
  162. }
  163. function onEfsize(){
  164.   rescale(this,_root.myMask)
  165. }
  166. function sizeRelease(){
  167.   maskArea._visible=true;
  168.   this.stopDrag();
  169.   rescale(this);
  170.   size._x=maskArea._x+maskArea._width/2;
  171.   size._y=maskArea._y+maskArea._height/2;
  172.   rotator._x=maskArea._x-maskArea._width/2-rotator._width/2;
  173.     rotator._y=maskArea._y+maskArea._height/2+rotator._width/2;
  174.   this.onEnterFrame=null;
  175. }
  176. function rescale(mc:Sprite){output("rescale");
  177.     maskArea._width=2*Math.abs(mc._x-maskArea._x);
  178.     maskArea._height=2*Math.abs(mc._y-maskArea._y);
  179.     
  180.     scale(clip,maskArea);
  181.     scale(oldClip,maskArea);
  182.     bar._width=maskArea._width;
  183.     bar._x=maskArea._x+maskArea._width/2-bar._width/2;
  184.     bar._y=maskArea._y-maskArea._height/2-bar._height;
  185.     rotator._x=maskArea._x-maskArea._width/2-rotator._width/2;
  186.     rotator._y=maskArea._y+maskArea._height/2+rotator._width/2;
  187.     
  188.     
  189. }
  190. function rescale2(mc:Sprite){output("rescale");
  191.     maskArea._width=2*Math.abs(mc._x-maskArea._x);
  192.     maskArea._height=2*Math.abs(mc._y-maskArea._y);
  193.     
  194.     scale(clip,maskArea);
  195.     scale(oldClip,maskArea);
  196.     bar._width=maskArea._width;
  197.     bar._x=maskArea._x+maskArea._width/2-bar._width/2;
  198.     bar._y=maskArea._y-maskArea._height/2-bar._height;
  199.     //rotator._x=maskArea._x-maskArea._width/2-rotator._width/2;
  200.     //rotator._y=maskArea._y+maskArea._height/2+rotator._width/2;
  201. }
  202. function scale(mc:sprite,m:Sprite){
  203.   //with(mc){
  204.     output("scale "+mc);
  205.     mc._xscale=mc._yscale=100;
  206.     var p=new Object({H:mc._height/m._height,W:mc._width/m._width});
  207.     p=(p.H>p.W) ? p.H : p.W;
  208.     mc._yscale=mc._xscale=100/p;
  209.     mc._x=m._x-mc._width/2, mc._y=m._y-mc._height/2;
  210.   //}
  211. }
  212. onLoad(){
  213. Number.prototype.Rnd=function(){
  214.  
  215.   var num=this;
  216.   var newRnd=Math.round(Math.random()*(num-1)-(-1));
  217.   while((newRnd==this.Rnd.old)||(newRnd==this.Rnd.varyold)){
  218.       newRnd=Math.round(Math.random()*(num-1)-(-1));
  219.     }
  220.     trace( this.Rnd.veryold+ " "+this.Rnd.old+" "+newRnd);
  221.   this.Rnd.veryold=this.Rnd.old;
  222.   this.Rnd.old=newRnd;
  223.   return(newRnd);
  224.  
  225. };
  226. }

Lamento que no es perfecto y un poco desordenado aún. Pero usted puede ver toda la película aquí

http://www.justinfront.net/swish/pictureDisplay.html
http://www.justinfront.net/swish/pictureDisplay.swi

Ahora rumor no tiene los componentes, pero muchos programadores graves no utilizar los componentes (que son demasiado pesados). Tipificación estricta está permitido, pero en realidad sólo ignora por el jugador interior buches. Algunas cosas como Flash Remoting no se construyó en pero usted puede encontrar maneras de hacer estas cosas, no pueden exportar en flash 7, pero hexagonal de la película es realmente más fácil que usted piensa. Así que mi conclusión es que SwishMax es una alternativa seria a parpadear cuando el precio se tiene en cuenta. Mientras que Flash es en general mejor que hay muchos aspectos de buches que son mejores (eco bytecode en la depuración es cool). Para un rumor nuevo usuario es probablemente más fácil para llegar a abordar. Aunque Flash es más sencillo de usar como una herramienta de gráficos vectoriales y de manera que cada vez que se mire (flash o swish) de secuencias de comandos apropiada no es fácil de aprender.

Escribí algo sobre las funciones que pueden ayudar a las personas con buena mano para swishscripting grave, aunque el enfoque anterior aún no está integrado en el tutorial.

http://www.justinfront.net/functions/


Espero que esto se suma a la discusión.

JLM

Publicar Información

  • Total de mensajes en este tema: 34 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 52 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC