2010-05-17 3 views
2

Je suis en train d'éditer une application de calendrier personnalisée en flash. Le but de cette application est de vous permettre de sélectionner vos propres images et de créer un calendrier. Vous pouvez essentiellement faire glisser et déposer des images de votre choix et appliquer des cadres/bordures, ou faire glisser et déposer des embellissements. Voici le morceau de code qui dessine une bordure/cadre sur l'embellissement/l'image de votre choix.ActionScript: Application d'un cadre à une image/arrière-plan?

tempListener.onLoadInit = function(target_mc:MovieClip) 
{ 
    var mcName = target_mc._name.substring(0, target_mc._name.indexOf("@", 0)); 
    if(mcName == "frame_Image") 
    { 
     target_mc.onPress = function() 
     { 
      if(_root.selectedImage != null) 
      { 
       var index = this._name.substring(this._name.indexOf("@",0)+1, this._name.length); 
       var objPath = nodesFrames.childNodes[index-1].attributes.image; 

       if(_root.selectedImage._name.split("@")[0] == "image") 
       { 
        var mask = _root.selectedImage[_root.selectedImage._parent._name + "_" + _root.selectedImage._name + "_maskMc"]; 

        frameImageWidth = mask._width; 
        frameImageHeight = mask._height; 
        frameImageXScale = -1; 
        frameImageYScale = -1; 
       } 
       else 
       { 
        frameImageXScale = _root.selectedImage._xscale; 
        frameImageYScale = _root.selectedImage._yscale; 

        _root.selectedImage._xscale = 100; 
        _root.selectedImage._yscale = 100;        

        frameImageWidth = _root.selectedImage._width; 
        frameImageHeight = _root.selectedImage._height;    
       } 

       if(_root.selectedImage["frame"]) 
       {} 
       else 
       { 
        _root.selectedImage.createEmptyMovieClip("frame", _root.selectedImage.getNextHighestDepth()); 
       } 
       var image_mcl1:MovieClipLoader = new MovieClipLoader(); 
       image_mcl1.addListener(_root.mclFrameListener); 
       image_mcl1.loadClip("Images/" + objPath, _root.selectedImage["frame"]); 
      } 
     } 
    } 

J'ai besoin d'appliquer en quelque sorte l'image de trame choisie, à l'ensemble de fond - pas seulement à l'embellissement ou l'image. Comment je vais à ce sujet?

Merci d'avance pour vos contributions. S'il vous plaît laissez-moi savoir si la question n'a pas de sens, je vais joindre quelques images qui peuvent vous aider avec le contexte.

+2

Vous ne savez pas pourquoi ActionScript 3 est une balise, votre code est AS2 .... mais les images seraient utiles pour illustrer ce que vous essayez de faire. Merci! – liquidleaf

+0

Désolé pour une mauvaise étiquette. C'était juste une tentative désespérée pour obtenir plus de points de vue. Au cours des 2 derniers jours, je viens d'avoir 8 vues sur celui-ci. J'ai donc édité des tags dans l'espoir d'obtenir une réponse. Je suis content que ça t'ait attiré l'attention :) – Jay

Répondre

3

Vous pouvez créer une nouvelle image bitmap avec le clip masqué, puis créer un arrière-plan en mosaïque. Ceci est la version AS2:

this.beginBitmapFill(tile); 

Et ici, il explique comment le faire: http://www.kirupa.com/developer/flash8/tiledbackground_flash8.htm

La seule différence est au lieu de charger une image bitmap, vous pouvez créer du clip masqué.

J'espère que c'est assez clair, d'autres façons faites le moi savoir.

1

Cela fait longtemps que j'ai écrit AS2, mais ... avez-vous essayé de créer un MovieClip vide qui se trouve dans la couche inférieure? Vous pouvez ensuite autoriser l'image de cadre sélectionnée à être un enfant de ce MC.

2

Il n'y a pas de façon intégrée dans Flash pour définir une image d'arrière-plan, vous devez implémenter la logique vous-même. Ainsi, par exemple, si vous voulez que l'image remplisse tout l'arrière-plan, vous devrez peut-être étirer ou mosaïquer manuellement, peut-être même sur OnSize.

Questions connexes