Movie clip redimensionnement ne fonctionne pas lorsque l'image est chargée
- clem_c_rock
- Novice


- Inscription: Aoû 22, 2006
- Messages: 20
- Status: Offline
Bonjour,
Im avoir un peu de chance d'étrange dans la construction d'un diaporama d'images. Je charge les chemins d'image dans un tableau à partir d'un XML
page, puis parcourir le tableau des éléments w / boutons Suivant et Précédent.
J'ai un clip image vide sur la scène où je crée un clip vide à l'intérieur à chaque fois une nouvelle image est chargée. Je charge le
image dans le second clip présente comme suit:
La fonction load_movie_and_stop est la suivante:
Lorsque l'image est chargée dans le clip, puis-je redimensionner l'image à une largeur spécifique.
Le redimensionnement de l'image se fait w / cette fonction:
Maintenant, 98% du temps, cela fonctionne parfaitement, mais il ya des moments où certains le redimensionnement d'image est complètement ignoré et que l'image est chargé de sa taille normale.
Quelqu'un peut-il voir pourquoi le dimensionnement des images se ignorée dans certains cas?
Merci pour toute aide,
Clem
Im avoir un peu de chance d'étrange dans la construction d'un diaporama d'images. Je charge les chemins d'image dans un tableau à partir d'un XML
page, puis parcourir le tableau des éléments w / boutons Suivant et Précédent.
J'ai un clip image vide sur la scène où je crée un clip vide à l'intérieur à chaque fois une nouvelle image est chargée. Je charge le
image dans le second clip présente comme suit:
Code: [ Select ]
_root.picsPage_mc.mc_pic_loader.mc_individual_pic_loader.unloadMovie();
_root.picsPage_mc.mc_pic_loader.createEmptyMovieClip( 'mc_individual_pic_loader', 1 );
_root.load_movie_and_stop( _root.picsPage_mc.mc_pic_loader.mc_individual_pic_loader, _root.photo_array[_root.photo_index].image, _root.picsPage_mc.mc_pbar, 'regular_load');
_root.picsPage_mc.mc_pic_loader.createEmptyMovieClip( 'mc_individual_pic_loader', 1 );
_root.load_movie_and_stop( _root.picsPage_mc.mc_pic_loader.mc_individual_pic_loader, _root.photo_array[_root.photo_index].image, _root.picsPage_mc.mc_pbar, 'regular_load');
- _root.picsPage_mc.mc_pic_loader.mc_individual_pic_loader.unloadMovie();
- _root.picsPage_mc.mc_pic_loader.createEmptyMovieClip( 'mc_individual_pic_loader', 1 );
- _root.load_movie_and_stop( _root.picsPage_mc.mc_pic_loader.mc_individual_pic_loader, _root.photo_array[_root.photo_index].image, _root.picsPage_mc.mc_pbar, 'regular_load');
La fonction load_movie_and_stop est la suivante:
Code: [ Select ]
function load_movie_and_stop( target_mc:MovieClip, movie_clip_to_load:String, p_bar:MovieClip, action:String )
{
mc_loader._width = 0;
mc_slider_bar.mc_drag_pan._x = 0;
if( action != 'simple_load' )
{
p_bar._visible = true;
p_bar.bar._width = 0;
}
var mclListener:Object = new Object();
mclListener.onLoadStart = function( target_mc )
{
if( action != 'simple_load' && action != 'regular_load' ){ target_mc.stop(); }
if( action == 'load_and_play' ){ target_mc.play(); }
}
mclListener.onLoadInit = function( target_mc )
{
_root.resize_movie_clip(target_mc, 160, 120, 250, 190);
if( action == 'load_and_stop' ){ target_mc.stop(); }
}
mclListener.onLoadProgress = function( target_mc )
{
if( action != 'simple_load' )
{
percentLoaded = Math.floor( ( target_mc.getBytesLoaded()/target_mc.getBytesTotal() )*100);
p_bar.bar._xscale = percentLoaded;
p_bar.txt_percent = percentLoaded + "% loaded.";
}
}
mclListener.onLoadComplete = function( target_mc ){ p_bar._visible = false; }
var my_mcl:MovieClipLoader = new MovieClipLoader();
my_mcl.addListener(mclListener);
my_mcl.loadClip( movie_clip_to_load, target_mc );
}//___endFunc___
{
mc_loader._width = 0;
mc_slider_bar.mc_drag_pan._x = 0;
if( action != 'simple_load' )
{
p_bar._visible = true;
p_bar.bar._width = 0;
}
var mclListener:Object = new Object();
mclListener.onLoadStart = function( target_mc )
{
if( action != 'simple_load' && action != 'regular_load' ){ target_mc.stop(); }
if( action == 'load_and_play' ){ target_mc.play(); }
}
mclListener.onLoadInit = function( target_mc )
{
_root.resize_movie_clip(target_mc, 160, 120, 250, 190);
if( action == 'load_and_stop' ){ target_mc.stop(); }
}
mclListener.onLoadProgress = function( target_mc )
{
if( action != 'simple_load' )
{
percentLoaded = Math.floor( ( target_mc.getBytesLoaded()/target_mc.getBytesTotal() )*100);
p_bar.bar._xscale = percentLoaded;
p_bar.txt_percent = percentLoaded + "% loaded.";
}
}
mclListener.onLoadComplete = function( target_mc ){ p_bar._visible = false; }
var my_mcl:MovieClipLoader = new MovieClipLoader();
my_mcl.addListener(mclListener);
my_mcl.loadClip( movie_clip_to_load, target_mc );
}//___endFunc___
- function load_movie_and_stop( target_mc:MovieClip, movie_clip_to_load:String, p_bar:MovieClip, action:String )
- {
- mc_loader._width = 0;
- mc_slider_bar.mc_drag_pan._x = 0;
- if( action != 'simple_load' )
- {
- p_bar._visible = true;
- p_bar.bar._width = 0;
- }
- var mclListener:Object = new Object();
- mclListener.onLoadStart = function( target_mc )
- {
- if( action != 'simple_load' && action != 'regular_load' ){ target_mc.stop(); }
- if( action == 'load_and_play' ){ target_mc.play(); }
- }
- mclListener.onLoadInit = function( target_mc )
- {
- _root.resize_movie_clip(target_mc, 160, 120, 250, 190);
- if( action == 'load_and_stop' ){ target_mc.stop(); }
- }
- mclListener.onLoadProgress = function( target_mc )
- {
- if( action != 'simple_load' )
- {
- percentLoaded = Math.floor( ( target_mc.getBytesLoaded()/target_mc.getBytesTotal() )*100);
- p_bar.bar._xscale = percentLoaded;
- p_bar.txt_percent = percentLoaded + "% loaded.";
- }
- }
- mclListener.onLoadComplete = function( target_mc ){ p_bar._visible = false; }
- var my_mcl:MovieClipLoader = new MovieClipLoader();
- my_mcl.addListener(mclListener);
- my_mcl.loadClip( movie_clip_to_load, target_mc );
- }//___endFunc___
Lorsque l'image est chargée dans le clip, puis-je redimensionner l'image à une largeur spécifique.
Le redimensionnement de l'image se fait w / cette fonction:
Code: [ Select ]
function resize_movie_clip(clip_loader_name:MovieClip, max_width:Number, max_height:Number )
{
orig_width = clip_loader_name._width;
orig_height = clip_loader_name._height;
aspect_ratio = orig_width / orig_height;
if( (orig_width > max_width) || ( orig_height > max_height ) ) // If either dimension is too big...
{
if( orig_width > orig_height ) // For wide images...
{
new_width = max_height;
new_height = new_width / aspect_ratio;
}
else if( orig_width < orig_height )
{
new_height = max_height;
new_width = new_height * aspect_ratio;
}
else if( orig_width == test_height )
{
new_width = max_width;
new_height = max_width;
}
else { trace( "Error reading image size."); return false; }
}
else { new_width = orig_width; new_height = orig_height; }
clip_loader_name._width = Math.round(new_width);
clip_loader_name._height = Math.round(new_height);
};
{
orig_width = clip_loader_name._width;
orig_height = clip_loader_name._height;
aspect_ratio = orig_width / orig_height;
if( (orig_width > max_width) || ( orig_height > max_height ) ) // If either dimension is too big...
{
if( orig_width > orig_height ) // For wide images...
{
new_width = max_height;
new_height = new_width / aspect_ratio;
}
else if( orig_width < orig_height )
{
new_height = max_height;
new_width = new_height * aspect_ratio;
}
else if( orig_width == test_height )
{
new_width = max_width;
new_height = max_width;
}
else { trace( "Error reading image size."); return false; }
}
else { new_width = orig_width; new_height = orig_height; }
clip_loader_name._width = Math.round(new_width);
clip_loader_name._height = Math.round(new_height);
};
- function resize_movie_clip(clip_loader_name:MovieClip, max_width:Number, max_height:Number )
- {
- orig_width = clip_loader_name._width;
- orig_height = clip_loader_name._height;
- aspect_ratio = orig_width / orig_height;
- if( (orig_width > max_width) || ( orig_height > max_height ) ) // If either dimension is too big...
- {
- if( orig_width > orig_height ) // For wide images...
- {
- new_width = max_height;
- new_height = new_width / aspect_ratio;
- }
- else if( orig_width < orig_height )
- {
- new_height = max_height;
- new_width = new_height * aspect_ratio;
- }
- else if( orig_width == test_height )
- {
- new_width = max_width;
- new_height = max_width;
- }
- else { trace( "Error reading image size."); return false; }
- }
- else { new_width = orig_width; new_height = orig_height; }
- clip_loader_name._width = Math.round(new_width);
- clip_loader_name._height = Math.round(new_height);
- };
Maintenant, 98% du temps, cela fonctionne parfaitement, mais il ya des moments où certains le redimensionnement d'image est complètement ignoré et que l'image est chargé de sa taille normale.
Quelqu'un peut-il voir pourquoi le dimensionnement des images se ignorée dans certains cas?
Merci pour toute aide,
Clem
- Anonymous
- Bot


- Inscription: 25 Feb 2008
- Messages: ?
- Loc: Ozzuland
- Status: Online
Octobre 26th, 2007, 6:35 am
- graphixboy
- Control + Z


- Inscription: Juil 11, 2005
- Messages: 1828
- Loc: In the Great White North
- Status: Offline
vous devez appeler votre fonction à l'intérieur de la redimensionner onComplete auditeur.
Le problème est que flash ne connaît pas la taille réelle de l'image jusqu'à ce que l'image a complètement téléchargé (aucune idée pourquoi, moi aussi ce casse-tête). Il fonctionne 98% du temps parce que les images de chargement sont généralement assez rapidement pour obtenir que les données avant d'appeler la fonction.
Comme alternative, vous pouvez mettre les dimensions de l'image dans le fichier xml, puis les redimensionner sur la base de ce lieu d'attendre que la charge à remplir.
Le problème est que flash ne connaît pas la taille réelle de l'image jusqu'à ce que l'image a complètement téléchargé (aucune idée pourquoi, moi aussi ce casse-tête). Il fonctionne 98% du temps parce que les images de chargement sont généralement assez rapidement pour obtenir que les données avant d'appeler la fonction.
Comme alternative, vous pouvez mettre les dimensions de l'image dans le fichier xml, puis les redimensionner sur la base de ce lieu d'attendre que la charge à remplir.
Page 1 sur 1
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: 2 messages
- Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 55 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
