external htmlText doesn't work when I have a mask
jesusleon46 Jun 10, 2009 1:42 AMHi everyone,
I am trying to resolve this problem. My external_txt is inside of a movie clip text_mc, and the
text_mc has a mask. It works perfectly with CSS using the mask, but with html the links doesn't work or
any html tags when I have the mask. I really don't know what is happening.
Someone could help me please. Below is my code. Thanks a lot!!!
J
var textLoader:URLLoader = new URLLoader();
var textReq:URLRequest = new URLRequest("text/news.txt");
var cssLoader:URLLoader = new URLLoader();
var cssRequest:URLRequest = new URLRequest("styles/style.css");
var style:StyleSheet = new StyleSheet();
var scrollPercent:Number = 0;
var minScroll:Number;
var maxScroll:Number;
var targetScroll:Number = text_mc.y;
var easing:Number = 5;
var scrollAmt:Number = 15;
var scrollDirection:Number = 0;
function textLoaded(event:Event):void
{
cssLoader.load(cssRequest);
cssLoader.addEventListener(Event.COMPLETE, cssLoaded);
minScroll = text_mc.y;
maxScroll = minScroll - text_mc.height + mask_mc.height;
}
function cssLoaded(event:Event):void
{
style.parseCSS(cssLoader.data);
text_mc.external_txt.styleSheet = style;
text_mc.external_txt.htmlText = textLoader.data;
}
function dragScroller(event:MouseEvent):void
{
var dragX:Number = line_mc.x - scroller_mc.width/2 + 1;
var dragY:Number = line_mc.y;
var dragW:Number = 0;
var dragH:Number = line_mc.height - scroller_mc.height;
scroller_mc.startDrag(false, new Rectangle(dragX,dragY,dragW,dragH));
stage.addEventListener(MouseEvent.MOUSE_UP, stopDragging);
stage.addEventListener(Event.ENTER_FRAME, setScrollPercent);
stage.removeEventListener(Event.ENTER_FRAME, scrollText);
}
function stopDragging(event:MouseEvent):void
{
scroller_mc.stopDrag();
}
function setScrollPercent(event:Event):void
{
scrollPercent = (scroller_mc.y - line_mc.y) / (line_mc.height - scroller_mc.height);
if(scrollPercent < 0)
{
scrollPercent = 0;
}
else if(scrollPercent > 1)
{
scrollPercent = 1;
}
targetScroll = (scrollPercent * (maxScroll - minScroll)) + minScroll;
text_mc.y -= (text_mc.y - targetScroll) / easing;
}
function scrollUp(event:MouseEvent):void
{
setDirection(scrollAmt);
}
function scrollDown(event:MouseEvent):void
{
setDirection(-scrollAmt);
}
function setDirection(dir:Number):void
{
scrollDirection = dir;
stage.addEventListener(Event.ENTER_FRAME, scrollText);
stage.addEventListener(MouseEvent.MOUSE_UP, stopScrolling);
stage.removeEventListener(Event.ENTER_FRAME, setScrollPercent);
}
function scrollText(event:Event):void
{
targetScroll += scrollDirection;
text_mc.y -= (text_mc.y - targetScroll) / easing;
if(text_mc.y > minScroll)
{
text_mc.y = minScroll;
targetScroll = minScroll;
}
else if(text_mc.y <maxScroll)
{
text_mc.y = maxScroll;
targetScroll = maxScroll;
}
scrollPercent = (text_mc.y - minScroll) / (maxScroll - minScroll);
scroller_mc.y = (scrollPercent * (line_mc.height - scroller_mc.height)) +
line_mc.y;
}
function stopScrolling(event:MouseEvent):void
{
scrollDirection = 0;
}
textLoader.load(textReq);
scroller_mc.buttonMode = true;
text_mc.external_txt.autoSize = TextFieldAutoSize.LEFT;
scroller_mc.addEventListener(MouseEvent.MOUSE_DOWN, dragScroller);
textLoader.addEventListener(Event.COMPLETE, textLoaded);
up_btn.addEventListener(MouseEvent.MOUSE_DOWN, scrollUp);
down_btn.addEventListener(MouseEvent.MOUSE_DOWN, scrollDown);
