Forums Développement Multimédia

Aller au contenu

[Newbie] Pourquoi ç amarche dans Flash et pas dans le lecteur

CODE Actionscript

4 réponses à ce sujet

#1 donben

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 22 October 2008 - 20:19 PM

Bonsoir,

Je suis face à un problème bien embêtant (comme beaucoup me direz-vous) : une anim écrite (tout AS3) et testée dans Flash ne fonctionne pas en standalone...
Quelqu'un pourrait-il me donner une explication, s'il y en a une ? Et peut-être m'aider à trouver la solution. Le code est long et sale mais si ça aide je le posterai...

Merci d'avance !

#2 lea94140

    Ceinture Bleue

  • Members
  • PipPipPipPipPip
  • 76 messages

Posté 22 October 2008 - 20:22 PM

C'est un peu vague comme ca poste et je vais essaye\ de tester


#3 donben

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 22 October 2008 - 20:48 PM

Voilà voilà alors...

Dans mon fichier fla :

Action Script


import flash.display.Sprite;
import flash.events.*;
import net.pingooo.simple3D.*;
import flash.utils.setTimeout;
import Bulle;
import Cadre;
import flash.utils.ByteArray;
import flash.media.SoundMixer;
import flash.media.SoundChannel;
import flash.media.Sound;
import flash.net.URLRequest;

// DECLARATION DES VARIABLES

// Bulles
var stage3d:Stage3D;
var cam3d:Camera3D;
var zoomMax:int;

var bubbles:Array;

var fluxSpectre:ByteArray;
var oscillation:Number;
var sonIntro:Sound;
var canalIntro:SoundChannel;
var zoomCam:uint;
var isSound:Boolean;

// ECOUTEURS
// Ecoute les événements du clavier
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);

function keyDownHandler(event:KeyboardEvent):void {
switch(event.keyCode) {
case 46:
// Touche Suppr. fait apparaître/disparaître la scène en fondu
break;
//case 65:
// A ou a change le fond
//break;
case 69:
// Z ou z change le fond
break;
case 90:
// E ou e change le fond
break;
case 32:
// Barre espace lance le mouvement
break;
case 112:
// F1 fait apparaître/disparaître Nebulo
break;
case 113:
// F2 lance la deuxième scène (bulles)
if (isSound != true) {
restartRotate(event);
isSound = true;
} else {
canalIntro.stop();
isSound = false;
}
}
}


// SCENE 3D BULLES
stage3d = new Stage3D();
stage3d.x = stage.stageWidth / 2;
stage3d.y = stage.stageHeight / 2;
addChild(stage3d);

zoomCam = 4;

cam3d = new Camera3D();
cam3d.z = - stage.stageHeight;
cam3d.zoom = zoomCam;
cam3d.alphaDepth = stage.stageHeight / 4;

bubbles = new Array();

init();

startRotate();

// Préparation du computeSpectrum sur les bulles
fluxSpectre = new ByteArray();
sonIntro = new Sound (new URLRequest ("snd/amilec_05_entree_pretendants.mp3"));
canalIntro = new SoundChannel();

/**
* Init
*/
function init() {

// Bulles
var num = 300;
for (var i:int = 0; i < num; i++) {
var bulle = new Bulle();
bulle.x = Math.random() * stage.stageHeight - (stage.stageHeight / 2);
bulle.y = Math.random() * stage.stageHeight - (stage.stageHeight / 2);
bulle.z = Math.random() * stage.stageHeight - (stage.stageHeight / 2);
bubbles.push(bulle);
stage3d.addChild(bulle);
}
render();

// Cadre rond
var cadre:Cadre = new Cadre();
addChild(cadre);

}
/**
* Start
*/
function startRotate() {
addEventListener(Event.ENTER_FRAME, run);
}
/**
* Restart
*/
function restartRotate(evt:Event) {
addEventListener(Event.ENTER_FRAME, run);

// démarrage du son
canalIntro = sonIntro.play();
canalIntro.addEventListener(Event.SOUND_COMPLETE, finSonIntro);

for each (var bulle:Bulle in bubbles) {
bulle.bulleColoree = true;
}
addEventListener(Event.ENTER_FRAME, calculSpectre);
}
/**
* fin du son : les bulles pâles réapparaissent
*/
function finSonIntro(pEvt:Event):void {
for each (var bulle:Bulle in bubbles) {
bulle.bulleColoree = false;
}
}
/**
* computeSpectrum sur le zoom
*/
function calculSpectre( pEvt:Event ):void {

SoundMixer.computeSpectrum( fluxSpectre );
var i:int = 128;
decalage = 2048 / i;
while ( i-- ) {
fluxSpectre.position = i * decalage;
oscillation = Math.abs(fluxSpectre.readFloat());
cam3d.zoom = Math.abs(oscillation) * 3 + zoomCam;
}
}
/**
* Render
*/
function render() {
stage3d.render(cam3d);
}
/**
* Rotate
*/
function rotate() {
for each (var bulle:Bulle in bubbles) {
bulle.orbitX += .0025;
bulle.orbitY += .005;
}
render();
}
/**
* Stop rotation
*/
function rotateStop(evt:Event) {
removeEventListener(Event.ENTER_FRAME, run);
}
/**
* Event : run
*/
function run(e:Event) {
rotate();
}

La classe Bulle :

Action Script


package {

import flash.display.MovieClip;
import flash.net.URLRequest;
import flash.display.Loader;
import net.pingooo.simple3D.MovieClip3D;
import flash.events.*;


public class Bulle extends MovieClip3D {

private var _bulleColoree:Boolean;
private var taille:uint;
private var bulleA:Loader;
private var bulleB:Loader;

public function Bulle() {
_bulleColoree=false;
taille=Math.random() * 70;

var loader:Loader=new Loader ;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,chargementBulleA);
loader.load(new URLRequest("img/bulle.png"));
}
private function chargementBulleA(evt:Event):void {

bulleA=evt.target.loader;
bulleA.width=taille;
bulleA.height=taille;
addChild(bulleA);

var loader:Loader=new Loader ;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,chargementBulleB);
var i:uint=Math.random() * 4;
var chemin:String=new String ;
switch (i) {
case 0 :
chemin="bulle_bleue.png";
break;
case 1 :
chemin="bulle_jaune.png";
break;
case 2 :
chemin="bulle_mauve.png";
break;
case 3 :
chemin="bulle_rouge.png";
break;
case 4 :
chemin="bulle_verte.png";
break;
}
loader.load(new URLRequest("img/" + chemin));

}
private function chargementBulleB(evt:Event):void {
bulleB=evt.target.loader;
bulleB.width=taille;
bulleB.height=taille;
addChild(bulleB);
bulleB.alpha=0;
}
public function set bulleColoree(visibilite:Boolean):void {
_bulleColoree=visibilite;
switch (visibilite) {

// FAIRE DES TWEENS POUR FONDRE LA TRANSITION

case true :
bulleB.alpha=1;
bulleA.alpha=0;
break;
case false :
bulleB.alpha=0;
bulleA.alpha=1;
break;
}
}
public function get bulleColoree():Boolean {
return _bulleColoree;
}
}
}

La classe Cadre :

Action Script


package {

import flash.display.Sprite;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.*;

public class Cadre extends Sprite {

public function Cadre() {

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, chargementComplet);
loader.load(new URLRequest("img/cadre_noir.png"));

}

private function chargementComplet(evt:Event):void {

var loader:Loader = evt.target.loader;
addChild(loader);

}

}
}

Quant à la classe 3D de PingooO impossible de la mettre ici. Trop de fichiers. Et je n'arrive pas à retrouver où je l'ai téléchargée. Pas sur son site en tous cas. Mais ce n'est pas ça qui buggue visiblement...

Merci d'avance !

#4 toojee_mat

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 280 messages

Posté 23 October 2008 - 08:30 AM

j'ai pas lu tout le code mais je parie qu'elle ne marche pas a cause des raccourcis clavier ?
Si c'est ca, quand tu compile va dans controle > désactiver les raccourcis clavier

#5 donben

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 24 October 2008 - 11:56 AM

Merci mais je ne trouve pas cette fonction... icon_sad.gif

Si tu pense qu'il peut y avoir conflit entre le KeyDownHandler et les raccourcis ça ne doti pas être ça. J'utilisais auparavant un événement souris CLICK et ça ne marchait pas non plus dans le lecteur...

Je suis perdu...



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)