Flashhilfe.de - Flash Community

Durch Transparenz von Bildern klicken [Flash 10]

Forum > ActionScript 3.0 > Durch Transparenz von Bildern klicken

 


AntwortenRegistrieren Seite1  

 22.09.2010, 15:19 
Benutzerbild von Doomwing
Beiträge: 16
Registriert: May 2006

Durch Transparenz von Bildern klicken
Hi,

ich habe folgendes Problem:

Ich lade 3 Bilder mit teilweise tranzparenten Bereichen.
Diese liegen übereinander auf der Stage und haben alle einen MouseEvent.CLICK Listener der ein popup
öffnet.  Nun möchte ich durch den tranzparenten Bereich der Bilder auf die sichtbaren Bereiche der dadrunterliegenden Bilder klicken können aber auch auf die sichtbaren Bereiche des obersten.

Sprich ich möchte nur auf die sichtbaren Bereiche klicken können aber nicht auf die mit alpha = 0;

Gibt es eine Möglichkeit die einzelnen Pixel der Bilder mit einem Alphawert von 0 zu löschen?

Ich weis das man das oberste Bild mit mouseEnabled = false; deaktivieren kann das hilft mir aber nicht.

Ich habe schon Stunden danach gesucht und rumprobiert aber kann dazu nichts passendes finden.

---------

So adde ich ein Bild:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
var btm:Bitmap = Bitmap(this.loader.content);
btm.smoothing = true;

var prop:Number = btm.width/btm.height;

btm.bitmapData.lock();
btm.width  = 200;
btm.height = Math.round(btm.width/prop);
btm.bitmapData.unlock();
   
var holder:Sprite = new Sprite();
holder.addChild(btm);
holder.getChildAt(0).x = -btm.width/2;
holder.getChildAt(0).y = -btm.height / 2;

this.arrStageImages[i].addChild(holder);
this.arrStageImages[i].name = i;
this.addChild(this.arrStageImages[i]);
this.arrStageImages[i].addEventListener(MouseEvent.CLICK,this.myListener);

++i;
}
 22.09.2010, 15:25Re1
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

Hi,
InteractivePNG ist, was du suchst.
 22.09.2010, 15:47Re2
Benutzerbild von Doomwing
Beiträge: 16
Registriert: May 2006

Themenautor/in

Ja genau das suchte ich!!!!

Ich danke Dir!!!

:-)
 
nicht sichtbar bei eingeloggten Mitgliedern
 23.09.2010, 19:28Re3
Benutzerbild von Doomwing
Beiträge: 16
Registriert: May 2006

Themenautor/in

Hi,

ok ich muss zugeben die Beschreibung warum es gehen soll ist toll und die Beispiele auch.
Aber ich verstehe es einfach nicht, vorallem kenne ich mich nicht so mit der Flex schreibweise aus (mxml).

Kann mir jemand erklären wie ich das schreiben muss?

Ich habe mal meine Dateien Angehängt.

Angehängte Dateien:
Komprimierte Datei test.zip103.47 KB
 23.09.2010, 19:58Re4
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

Wieso Flex? Die Demo ist doch Flash. Du hast dir anscheinend die falsche Datei heruntergeladen.
 24.09.2010, 11:46Re5
Benutzerbild von Doomwing
Beiträge: 16
Registriert: May 2006

Themenautor/in

Ja, hatte die falsche Datei runtergeladen, danke.

Hier mein Sourcecode, so funktioniert das :)

PHP:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package
{
    import com.mosesSupposes.bitmap.InteractivePNG;
   
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.net.URLRequest;
   
    public class TestCore extends Sprite
    {
        private var arrLoader:Array;
        private var i:int;

        public var arrStageImages:Array;
       
       

        public function TestCore()
        {
            this.loadImages();
        }
       
       
        public function loadImages():void
        {
            this.arrStageImages = [];
            this.i = 0;
            this.arrLoader   = [];
           
            var arrImgPath:Array = new Array("test1.png","test2.png","test3.png");
           
            for (var k:int = 0; k < arrImgPath.length; ++k)
            {
                //this.arrStageImages<i> = new Sprite();
                this.arrStageImages<i> = new InteractivePNG(); // Alle Container m&uuml;ssen InteractivePNG sein
                this.arrStageImages<i>.buttonMode = true;
               
                this.arrStageImages<i>.x = Math.random()*100+(i+100);
                this.arrStageImages<i>.y = Math.random()*100+(i+100);
               
                this.arrLoader<i> = new Loader();
                this.arrLoader<i>.contentLoaderInfo.addEventListener(Event.INIT, this.initListener);
                var url:URLRequest = new URLRequest(arrImgPath<i>); 
                this.arrLoader<i>.load(url);
            }
           
        }
       
        private function initListener(eve:Event):void
        {
            var btm:Bitmap = Bitmap(this.arrLoader[this.i].content);
            btm.smoothing = true;
           
            var prop:Number = btm.width/btm.height;
           
            btm.bitmapData.lock();
            btm.width  = 200;
            btm.height = Math.round(btm.width/prop);
            btm.bitmapData.unlock();
               
            var holder:InteractivePNG = new InteractivePNG();
            holder.alphaTolerance = 255; // Der innerste Container bestimmt die Tolleranz.
            holder.addChild(btm);
            holder.getChildAt(0).x = -btm.width/2;
            holder.getChildAt(0).y = -btm.height / 2;
           
           
            this.arrStageImages[i].addChild(holder);
            this.arrStageImages[i].name = i;
            this.addChild(this.arrStageImages[i]);
            this.arrStageImages[i].addEventListener(MouseEvent.CLICK,this.myListener);
           
            ++this.i;
        }
       
        private function myListener(eve:MouseEvent):void
        {
            switch(eve.type)
            {
                case 'click':{
                    trace("open Popup f&uuml;r: "+eve.currentTarget.name);
                }
            }
        }
       
       
    }
}
 
nicht sichtbar bei eingeloggten Mitgliedern
 
Themen
Ähnliche Beiträge zum Thema
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de