swftools-common
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: RE: [Swftools-common] Selectable Text


From: Goldstein, Seth
Subject: RE: RE: [Swftools-common] Selectable Text
Date: Wed, 18 Feb 2009 08:52:36 -0600

Well, I believe textsnapshot works fine zoomed, it is hitTestTextNearPos that 
is failing me.  The hit testing is being thrown off but I'm not sure how to 
properly adjust it to get it to hit right.

I'm sure it's probably a really simple problem, but just struggling being an 
actionscript virgin.

From: justin riggio [mailto:address@hidden 
Sent: Wednesday, February 18, 2009 8:50 AM
To: Goldstein, Seth
Subject: Re: RE: [Swftools-common] Selectable Text

So textsnapshot does not work while zoomed? I have it working with search but 
haen't tested with zoom yet. Let me know what you find. I'll do the same
Thanks,
Justin
On Feb 18, 2009 9:45 AM, "Goldstein, Seth" <address@hidden> wrote:


Well, I was playing around with this, and I got it kinda working.  The
only problem left as far as I can tell is that the character hit
selection doesn't work while zoomed.  Can anyone help me out as to what
changes are necessary to get it to worked while zoomed?  Thanks!

For those that might be interested, so far I've taken 2 steps in
modifying Cristian Rusu's original code ( http://swfviewer.blogspot.com/
) :

1) Deleted dragarea and commented out all references to areabutton in
the actionscript

2) Added the following actionscript, which is based on
http://www.swftools.org/flash/textsnapshot.html :

stop();

//my_snap = cliparea.getTextSnapShot();
my_snap.setSelectColor(0xffff00);
firstChar = -1;

cliparea.onPress = function() {
       firstChar = my_snap.hitTestTextNearPos(_xmouse, _ymouse, 0);
       my_snap.setSelected(0, my_snap.getCount(), false);
       trace("cliparea.onPress = " + my_snap.getSelectedText(true));
};

cliparea.onRelease = function() {
       if (firstChar >= 0) {
               lastChar = my_snap.hitTestTextNearPos(_xmouse, _ymouse,
0);
               if (firstChar != lastChar) {
                       if (firstChar < lastChar) {
                               my_snap.setSelected(firstChar,
lastChar+1, true);
                       } else {
                               my_snap.setSelected(lastChar,
firstChar+1, true);
                       }
               }

               trace("cliparea.onRelease = " +
my_snap.getSelectedText(true));
               firstChar = -1;
               lastChar = -1;
       }
};

cliparea.onMouseMove = function() {
       if(firstChar != -1) {
               my_snap.setSelected(0, my_snap.getCount(), false);
//unselect everything

               lastChar = my_snap.hitTestTextNearPos(_xmouse, _ymouse,
0);
               if (firstChar < lastChar) {
                       my_snap.setSelected(firstChar, lastChar+1,
true);
               } else if(lastChar >= 0) {
                       my_snap.setSelected(lastChar, firstChar+1,
true);
               }

               trace("cliparea.onMouseMove = " +
my_snap.getSelectedText(true));
       }
};
-----Original Message----- From: address@hidden [m...




reply via email to

[Prev in Thread] Current Thread [Next in Thread]