Actionscript 3 - load and library image on increment / counter

两盒软妹~` 提交于 2020-01-06 06:42:09

问题


I have a very simple flash movie.

  • 24 png images in the Library
  • The image properties are set to 'Export for Actionscript' and the class named 'image1', 'image2' etc
  • Single frame in the timeline

I need to dynamically load 'image1' on the stage at the start of the movie. I have been able to do this using BitmapData ojects.

On clicking the image, I need to increment an internal image and replace the image on screen with image2.

When I try to pass the library class as a variable it throws an error.

Can anyone help me with an example?

Any questions, just let me know.


回答1:


Loading externally might be handy, but the library approach is doable. You need to either use loaderInfo's applicationDomain's getDefinition() method, or flash.utils.getDefinitionByName();

application domain example:

for(var i:int = 0 ; i < imagesNum ; i++){
    var ImageClass:Class = this.loaderInfo.applicationDomain.getDefinition('YourLinkageID'+i) as Class;
    //I add 0,0 because since you have png, they will extend BitmapData which has width and height as compulsory 
    //constructor arguments. If the thing doesn't look right, use the actual dimensions instead of 0,0
    var bitmap:Bitmap = new Bitmap(new ImageClass(0,0));
    //display it or do whatever
}

getDefinitionByName example:

import flash.utils.*;

for(var i:int = 0 ; i < imagesNum ; i++){
    var ImageClass:Class = getDefinitionByName('YourLinkageID'+i) as Class;
    var bitmap:Bitmap = new Bitmap(new ImageClass(0,0));
    //display it or do whatever
}

HTH, George




回答2:


You would be better creating a class and loading the images in using the Loader class. Is it imperitive you have the images in the library?



来源:https://stackoverflow.com/questions/2101827/actionscript-3-load-and-library-image-on-increment-counter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!