SWISHmax, un sérieux concurrent pour Flash, et abordable
- SWiSHmax
- Born


- Inscription: Nov 03, 2003
- Messages: 3
- Status: Offline
Salut Cuerock,
Bien sûr, son absurde, mais je vois toujours des gens intelligents apparaît notly SWiSH blâmer pour tous les maux du monde Flash.
Je viens de trouver un autre: http://www.svachon.com/articles/?ref=2003_09_12
Donc vous allez, l'ensemble de nos sa faute! J'adore le "je utiliser Flash, Swish pas" bit...s'il vous plaît, Flash n'est pas sorcier.
J'ai oublié de mentionner, nous avons aussi un SWiSHscript forum pour tous ceux qui sont intéressés:
http://www.swishzone.com/forums/index.php?act=SF&f=23
Cheers, David
Bien sûr, son absurde, mais je vois toujours des gens intelligents apparaît notly SWiSH blâmer pour tous les maux du monde Flash.
Je viens de trouver un autre: http://www.svachon.com/articles/?ref=2003_09_12
Quote:
Je déteste même parler de la "s" mot, mais Flash n'est pas Swish. Au moins, il n'a pas été MX 2004. Il a été agréable de pouvoir dire "je utiliser Flash, Swish pas" à des gens qui pensent que les films sont plus faciles sur la planète à créer. Bientôt, bien des milliers de débutants qui se disent de temps "Flash experts" au lieu de "Swish experts". Swish introduit une terrible vague de sites Flash, MX et 2004 portera sur un nouveau. Alors, préparez-vous.
Donc vous allez, l'ensemble de nos sa faute! J'adore le "je utiliser Flash, Swish pas" bit...s'il vous plaît, Flash n'est pas sorcier.
J'ai oublié de mentionner, nous avons aussi un SWiSHscript forum pour tous ceux qui sont intéressés:
http://www.swishzone.com/forums/index.php?act=SF&f=23
Cheers, David
- Anonymous
- Bot


- Inscription: 25 Feb 2008
- Messages: ?
- Loc: Ozzuland
- Status: Online
Novembre 4th, 2003, 10:32 pm
- the_real_tisse
- Graduate


- Inscription: Sep 20, 2003
- Messages: 116
- Loc: Belgium
- Status: Offline
- Blackwater1
- Born


- Inscription: Nov 18, 2003
- Messages: 2
- Status: Offline
- JLM
- Newbie


- Inscription: Oct 24, 2004
- Messages: 5
- Loc: Oxford
- Status: Offline
The_real_tisse
remarqué lors de ce forum en passant par les journaux site, je pense que le lien est rompu maintenant, mais vous ne mentionne rien sur moi
(JLM-Justin modérateur spécialisation flash Rainbowfly.net / design Swish / développement).
J'ai donc pensé que je pourrais ajouter à cette discussion sérieuse. J'ai commencé premier flash rien qu'en jouant avec des masques et des préadolescents puis ils apprennent lentement AS1 et ensuite eu l'occasion de tester SwishMax à un moment où je montais en POO donc j'ai poussé SwishMax OOP pour voir comment il peut être maintenant j'utilise AS2 et je suis explorer les moyens de faire similaire dans SwishMax. L'un des avantages-je trouver de SwishMax est je comprends mieux à l'aide de flash Swish! J'ai probablement été une des personnes qui ont essayé de repousser les limites et je dois dire que swishzone ont été très bonnes choses à améliorer SwishMax ajoutant, pas toujours dire nous tous, mais le logiciel cherche constamment à améliorer les mises à jour régulières peuvent être téléchargées et depuis mon inital tests, il a amélioré pas de fin. Je suggère toute personne impliquée dans un site qui utilise Flash4 joueur devrait certainement utiliser SwishMax ci-dessus une version de Flash, car il est plus facile de script plus de choses pour Flash 4. N'ayant pas attachMovie est l'une des plus grandes dunes laissez environ SwishMax, des ados, je préfère plus d'effets mais je pense que c'est plus en raison de l'utilisation de Flash plus en plus, et tracebitmap fait cruellement défaut dans SwishMax, mais casser en morceaux dans Swish est un outil de création que je souhaiterais voir s'étendre à la rupture d'un sprite en place. Des choses comme la fonction e-mail et Math.sindeg () rendent simplement la vie plus facile. Je ne suis pas un fan de code distribué et je dois admettre modèle Swish-t-il encourager, même si elle est mieux organisé et je peux voir une fusion mieux et plus cohérente des swishscript en swishAS2. En fait SwishMax pouvez utiliser AS1 et sa structure réelle vous permet de travailler dans un manoir très AS2 sans la syntaxe et sans héritage, mais après avoir lu Moocks livre AS2 je vois que la composition fonctionne vraiment bien sophistiqués, même si les tests ne peuvent normalement pas être fait en le lecteur interne et un LocalConnection à clignoter à des traces de sortie est ma technique préférée, non pas exactement satisfaisante! Quoi qu'il en soit ici est une portion de script qui montre comment un sprite est utilisée comme une classe de composition.
Désolé, il n'est pas encore parfait et un peu désordonné encore. Mais vous pouvez regarder le film en entier ici
http://www.justinfront.net/swish/pictureDisplay.html
http://www.justinfront.net/swish/pictureDisplay.swi
Maintenant Swish n'a pas de composants, mais de nombreux scripteurs graves ne pas utiliser les composants (ils sont trop lourds). Le typage strict est autorisée, mais vraiment tout simplement ignorés par le joueur interne Swish. Certaines choses comme Flash Remoting ne sont pas intégrés mais vous pouvez en trouver les moyens de faire ces choses, ne peut pas exporter dans Flash 7, mais hex le film est plus facile que vous le pensez. Donc, ma conclusion est que SwishMax est une alternative sérieuse à clignoter lorsque le prix est pris en compte. Lorsque le flash est généralement meilleure qu'il ya plusieurs aspects de Swish qui sont mieux (echo bytecode dans le débogage est cool). Pour un swish nouvel utilisateur est probablement plus facile de se familiariser avec. Bien que Flash est plus simple à utiliser comme un outil graphique vectorielle et qui jamais comme vous le découper en tranches (Flash ou Swish) de script approprié n'est pas facile à apprendre.
J'ai écrit quelque chose sur les fonctions qui mai aider les gens à se familiariser avec swishscripting grave, même si l'approche ci-dessus ne sont pas encore intégrés dans le tutoriel.
http://www.justinfront.net/functions/
Espérons que cela ajoute à la discussion.
JLM
Quote:
API de dessin
remarqué lors de ce forum en passant par les journaux site, je pense que le lien est rompu maintenant, mais vous ne mentionne rien sur moi
J'ai donc pensé que je pourrais ajouter à cette discussion sérieuse. J'ai commencé premier flash rien qu'en jouant avec des masques et des préadolescents puis ils apprennent lentement AS1 et ensuite eu l'occasion de tester SwishMax à un moment où je montais en POO donc j'ai poussé SwishMax OOP pour voir comment il peut être maintenant j'utilise AS2 et je suis explorer les moyens de faire similaire dans SwishMax. L'un des avantages-je trouver de SwishMax est je comprends mieux à l'aide de flash Swish! J'ai probablement été une des personnes qui ont essayé de repousser les limites et je dois dire que swishzone ont été très bonnes choses à améliorer SwishMax ajoutant, pas toujours dire nous tous, mais le logiciel cherche constamment à améliorer les mises à jour régulières peuvent être téléchargées et depuis mon inital tests, il a amélioré pas de fin. Je suggère toute personne impliquée dans un site qui utilise Flash4 joueur devrait certainement utiliser SwishMax ci-dessus une version de Flash, car il est plus facile de script plus de choses pour Flash 4. N'ayant pas attachMovie est l'une des plus grandes dunes laissez environ SwishMax, des ados, je préfère plus d'effets mais je pense que c'est plus en raison de l'utilisation de Flash plus en plus, et tracebitmap fait cruellement défaut dans SwishMax, mais casser en morceaux dans Swish est un outil de création que je souhaiterais voir s'étendre à la rupture d'un sprite en place. Des choses comme la fonction e-mail et Math.sindeg () rendent simplement la vie plus facile. Je ne suis pas un fan de code distribué et je dois admettre modèle Swish-t-il encourager, même si elle est mieux organisé et je peux voir une fusion mieux et plus cohérente des swishscript en swishAS2. En fait SwishMax pouvez utiliser AS1 et sa structure réelle vous permet de travailler dans un manoir très AS2 sans la syntaxe et sans héritage, mais après avoir lu Moocks livre AS2 je vois que la composition fonctionne vraiment bien sophistiqués, même si les tests ne peuvent normalement pas être fait en le lecteur interne et un LocalConnection à clignoter à des traces de sortie est ma technique préférée, non pas exactement satisfaisante! Quoi qu'il en soit ici est une portion de script qui montre comment un sprite est utilisée comme une classe de composition.
Code: [ 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);
};
}
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);
};
}
- //*** 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);
- };
- }
Désolé, il n'est pas encore parfait et un peu désordonné encore. Mais vous pouvez regarder le film en entier ici
http://www.justinfront.net/swish/pictureDisplay.html
http://www.justinfront.net/swish/pictureDisplay.swi
Maintenant Swish n'a pas de composants, mais de nombreux scripteurs graves ne pas utiliser les composants (ils sont trop lourds). Le typage strict est autorisée, mais vraiment tout simplement ignorés par le joueur interne Swish. Certaines choses comme Flash Remoting ne sont pas intégrés mais vous pouvez en trouver les moyens de faire ces choses, ne peut pas exporter dans Flash 7, mais hex le film est plus facile que vous le pensez. Donc, ma conclusion est que SwishMax est une alternative sérieuse à clignoter lorsque le prix est pris en compte. Lorsque le flash est généralement meilleure qu'il ya plusieurs aspects de Swish qui sont mieux (echo bytecode dans le débogage est cool). Pour un swish nouvel utilisateur est probablement plus facile de se familiariser avec. Bien que Flash est plus simple à utiliser comme un outil graphique vectorielle et qui jamais comme vous le découper en tranches (Flash ou Swish) de script approprié n'est pas facile à apprendre.
J'ai écrit quelque chose sur les fonctions qui mai aider les gens à se familiariser avec swishscripting grave, même si l'approche ci-dessus ne sont pas encore intégrés dans le tutoriel.
http://www.justinfront.net/functions/
Espérons que cela ajoute à la discussion.
JLM
Pour répondre à ce sujet, vous devez vous connecter ou vous enregistrer. Il est gratuit.
Afficher de l'information
- Total des messages de ce sujet: 34 messages
- Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 73 invités
- Vous ne pouvez pas poster de nouveaux sujets
- Vous ne pouvez pas répondre aux sujets
- Vous ne pouvez pas éditer vos messages
- Vous ne pouvez pas supprimer vos messages
- Vous ne pouvez pas joindre des fichiers
