bonjour,
dans ce site :
http://www.actilife.ch/Documents/index.html#/fr/home/
on remarque que la hauteur de l'animation est proportionnelle selon le contenu,
comment on peut faire la hauteur dynamique selon le contenu ?
merci
Version imprimable
bonjour,
dans ce site :
http://www.actilife.ch/Documents/index.html#/fr/home/
on remarque que la hauteur de l'animation est proportionnelle selon le contenu,
comment on peut faire la hauteur dynamique selon le contenu ?
merci
utilisation de la property scaleMode avec l'event onResize
http://livedocs.adobe.com/flash/9.0/...html#scaleModeCode:
1
2
3
4
5
6
7
8
9 stage.scaleMode= "noScale"; stage.align = "TL"; stage.addEventListener(Event.RESIZE, onResize); public function onResize(ev:Event):void { var stageWidth:Number=stage.stageWidth; var stageHeight:Number= stage.stageHeight; //repositionnez vos éléments en fonction de la nouvelle taille };
vous pouvez mettre [résolu] dans le sujet?
désolé pas encore résolu,
je vais inserer ou ce code ?
dans l'HTML ou actionscript de l'animation ?
il me signal une erreur quand je l'insere dans l'actionscript,
Citation:
The public attribute can only be used inside a package
Donc il faut insérer ce code dans votre animation swf
exempleCode:
1
2
3
4
5
6
7
8
9
10
11
12 //la première partis dans une méthode que vous exécutez au lancement de votre animation stage.scaleMode= "noScale"; stage.align = "TL"; stage.addEventListener(Event.RESIZE, onResize); //et cette méthode dans la classe appelant le code ci dessus public function onResize(ev:Event):void { var stageWidth:Number=stage.stageWidth; var stageHeight:Number= stage.stageHeight; //repositionnez vos éléments en fonction de la nouvelle taille };
Code:
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 package { import flash.display.Stage; import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); stage.scaleMode= "noScale"; stage.align = "TL"; stage.addEventListener(Event.RESIZE, onResize); } public function onResize(ev:Event):void { var stageWidth:Number=stage.stageWidth; var stageHeight:Number= stage.stageHeight; //repositionnez vos éléments en fonction de la nouvelle taille } } }
En as3 ce code doit être présent dans une classe unique, donc dans un seul fichiers.as.
Dans l'exemple la classe est nommée Main.
Donc il faut rajouter un classe Main a votre projet.
Cette ci devant être enregistrée dans un fichier appelé Main.as.
Cependant l'exemple été la pour vous expliquer le mode fonctionnement.
Vous développez bien en As3 et pas en as2 ?
Sinon testez le code suivant :
Code:
1
2
3
4
5
6
7
8 stage.scaleMode= "noScale"; stage.align = "TL"; stage.addEventListener(Event.RESIZE, function(ev:Event):void { var stageWidth:Number=stage.stageWidth; var stageHeight:Number= stage.stageHeight; //repositionnez vos éléments en fonction de la nouvelle taille } );
oui je développe en AS3 avec Flash CS4,
voici mon code :
mon but est de redimentionner le premier swf selon le deuxieme swf.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import flash.display.Loader; var chargeur:Loader = new Loader(); var adresseSWF:URLRequest = new URLRequest("a.swf"); chargeur.load(adresseSWF); addChild(chargeur); chargeur.x = 100; chargeur.y = 300; stage.scaleMode= "noScale"; stage.align = "TL"; stage.addEventListener(Event.RESIZE, onResize); function onResize(ev:Event):void { var stageWidth:Number=stage.stageWidth; var stageHeight:Number= stage.stageHeight; //repositionnez vos éléments en fonction de la nouvelle taille };
car le deuxieme est plus grand en hauteur.
avec ce code j'ai aucune erreur mais rien ne se passe
Vous voulez redimensionner la hauteur du swf dans la page html ?
testez avec ce code
Code:
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 var chargeur:Loader = new Loader(); var adresseSWF:URLRequest = new URLRequest("a.swf"); chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, function(event:Event):void { var _loader:Loader = Loader(event.target.loader); var sp:Sprite = Sprite(_loader.content); var MaxWidth:Number = sp.stage.stageWidth; var MaxHeight:Number = sp.stage.stageHeight; var ratio:Number=0; if (sp.width>MaxWidth) { var ww:Number = sp.width; sp.width = MaxWidth; ratio = sp.width/ww; sp.height = sp.height*ratio; } if (sp.height>MaxHeight) { var hh:Number =sp.height; sp.height = MaxHeight; ratio = sp.height/hh; sp.width = sp.width*ratio; } } ); chargeur.load(adresseSWF); addChild(chargeur); chargeur.x = 0; chargeur.y = 0;
Non sa fonctionne pas,
http://www.actilife.ch/Documents/ind...tente/dossier/
je voulais faire comme ce site ci-dessus
j'ai swf pricipal et je charge des swfs de different hauteurs
Le swf secondaire n'est pas redimensionné ou il n'est pas affiché ?
donc pouvez vous tester le code suivant et me dire ce qui apparait dans la fenêtre de sorti
Code:
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 chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, function(event:Event):void { var _loader:Loader = Loader(event.target.loader); trace("_loader"+_loader); var sp:Sprite = Sprite(_loader.content); trace("sp"+sp); var MaxWidth:Number = sp.stage.stageWidth; trace("MaxWidth"+MaxWidth); var MaxHeight:Number = sp.stage.stageHeight; trace("MaxHeight"+MaxHeight); trace("sp p x"+sp.parent.x); trace("sp p y"+sp.parent.y); trace("sp p w"+sp.parent.width); trace("sp p h"+sp.parent.height); trace("sp x"+sp.x); trace("sp y"+sp.y); trace("sp w"+sp.width); trace("sp h"+sp.height); var ratio:Number=0; if (sp.width>MaxWidth) { var ww:Number = sp.width; sp.width = MaxWidth; ratio = sp.width/ww; sp.height = sp.height*ratio; } if (sp.height>MaxHeight) { var hh:Number =sp.height; sp.height = MaxHeight; ratio = sp.height/hh; sp.width = sp.width*ratio; } } );
voici ce reçois
au fait, j'ai trouvé ce lien :Citation:
_loader[object Loader]
sp[object MovieClip]
MaxWidth950
MaxHeight500
sp p x100
sp p y300
sp p w302
sp p h757.85
sp x0
sp y0
sp w302
sp h757.85
http://blog.deconcept.com/swfobject/
testez comme ça :
Code:
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 chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, function(event:Event):void { var _loader:Loader = Loader(event.target.loader); trace("_loader"+_loader); var sp:Sprite = Sprite(_loader.content); trace("sp"+sp); var MaxWidth:Number = sp.stage.stageWidth-sp.parent.x; trace("MaxWidth"+MaxWidth); var MaxHeight:Number = sp.stage.stageHeight-sp.parent.y; trace("MaxHeight"+MaxHeight); trace("sp p x"+sp.parent.x); trace("sp p y"+sp.parent.y); trace("sp p w"+sp.parent.width); trace("sp p h"+sp.parent.height); trace("sp x"+sp.x); trace("sp y"+sp.y); trace("sp w"+sp.width); trace("sp h"+sp.height); var ratio:Number=0; if (sp.width>MaxWidth) { var ww:Number = sp.width; sp.width = MaxWidth; ratio = sp.width/ww; sp.height = sp.height*ratio; } if (sp.height>MaxHeight) { var hh:Number =sp.height; sp.height = MaxHeight; ratio = sp.height/hh; sp.width = sp.width*ratio; } trace("sp after x"+sp.x); trace("sp after y"+sp.y); trace("sp after w"+sp.width); trace("sp after h"+sp.height); } );
la deuxieme swf apparait completement mnt, mais il a changé de dimension, il est réduit pour qu'il apparaisse