fusionPT
December 1st, 2009, 02:23 PM
Why this throws me this error?:
ReferenceError: Error #1069: Property button1 not found on com.cacao.tooltip and there is no default value.
at com.cacao::tooltip/com.cacao::Parse()
at com.cacao::tooltip/com.cacao::xmlLoaded()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
This is the code:
package com.cacao{
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.*;
import flash.events.*;
import flash.display.*;
import caurina.transitions.Tweener;
import flash.filters.*;
import caurina.transitions.properties.FilterShortcuts;
public class tooltip extends MovieClip {
var myXML:XML = new XML();
var xmlPath:String ="xml/tooltip.xml";
var XML_URL:String = xmlPath;
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader(myXMLURL);
var outX:Number;
var btnOver;
var Xmouse:Number;
var Ymouse:Number;
var buttonAll:XMLList;
var buttonAttr:XMLList;
var buttonText:XMLList;
var buttonActual;
var textos:XMLList;
var toolNumber:Number;
var tooltipColor:uint = 0xCCCFFF;
//TOOLTIP TEXT VARS
var fontSize:Number = 14;
var toolTipWidth:Number = 200;
var myFont1:Font = new Font1();
var myFont1B:Font = new Font1B();
var format1:TextFormat = new TextFormat();
var ttText:TextField = new TextField();
//TOOTIP BG VARS
var contenedor:MovieClip = new MovieClip();
var bg:Sprite = new Sprite();
var triangle:Sprite = new Sprite;
//etc.....
function tooltip():void {
FilterShortcuts.init();
bg.graphics.drawRect(0, 0, 50, 50);
bg.graphics.beginFill(tooltipColor);
bg.graphics.drawRect(0, 0, 50, 50);
bg.graphics.endFill();
//
bg.width = ttText.width;
format1.font = myFont1.fontName;
format1.size = fontSize;
format1.color = 0x333333;
ttText.wordWrap = true;
ttText.border = false;
ttText.multiline = true;
ttText.autoSize = TextFieldAutoSize.LEFT;
ttText.defaultTextFormat = format1;
ttText.embedFonts = true;
ttText.antiAliasType = AntiAliasType.ADVANCED;
ttText.text = "Loading";
addChild(contenedor);
contenedor.addChild(bg);
contenedor.addChild(ttText);
contenedor.addChild(triangle);
contenedor.alpha=0;
bg.alpha = 1;
triangle.alpha=1;
makeTriangle(10,10);
//LOAD XML FILE
myLoader.addEventListener("complete", xmlLoaded);
}
function makeTriangle(triangleSideW,triangleSideH) {
triangle.graphics.beginFill(tooltipColor);
var triangleSide:Number = 10;
triangle.graphics.moveTo(0, 0);
triangle.graphics.lineTo(0, triangleSide);
triangle.graphics.lineTo(triangleSideW, triangleSideH);
triangle.graphics.lineTo(0, 0);
triangle.rotation = -45;
}
function xmlLoaded(event:Event):void {
myXML = XML(myLoader.data);
Parse(myXML.button);
myXML.ignoreWhite = true;
}
function Parse(buttonInput):void {
buttonAll = buttonInput.children();
buttonAttr = buttonInput.attribute("id");
buttonText = buttonInput.texto;
//trace(buttonAll + "Length: "+buttonInput.length());
trace(buttonAttr)
for (var item:uint = 0; item < buttonInput.length(); item++) {
this[buttonAttr[item]].addEventListener(MouseEvent.MOUSE_OVER, loadTexts);
this[buttonAttr[item]].addEventListener(MouseEvent.MOUSE_OUT, removeToolTip);
}
}
function loadTexts(evt:MouseEvent) {
buttonActual = evt.currentTarget.name;
btnOver = evt.currentTarget;
splitArray(buttonActual);
contenedor.visible = false;
ttText.wordWrap = true;
ttText.htmlText = buttonText[toolNumber];
ttText.addEventListener(Event.ENTER_FRAME, toolTip);
trace("button"+buttonActual+" -- "+buttonText[toolNumber]);
Tweener.addTween(contenedor,{alpha:1,time:1, delay:.1,transition:"easeInOut"});
contenedor.mouseChildren = false;
}
function removeToolTip(evt:MouseEvent):void {
Tweener.addTween(contenedor,{alpha:0,time:.5, transition:"easeInOut", onComplete:hideToolTip});
ttText.removeEventListener(Event.ENTER_FRAME, toolTip);
}
function hideToolTip() {
contenedor.visible = false;
}
function toolTip(evt:Event):void {
Xmouse = Math.round(mouseX - ttText.width / 2 - triangle.width/2);
Ymouse = btnOver.y - ttText.height - 40;
contenedor.visible = true;
placeTool();
contenedor.x += .5 * (Xmouse - contenedor.x);
}
function splitArray(clicked) {
toolNumber = Number(clicked.split("button").join("")-1);
trace(toolNumber);
}
function placeTool() {
ttText.width = toolTipWidth;
ttText.x=10;
ttText.y=10;
ttText.wordWrap = true;
ttText.multiline = true;
bg.width=ttText.width + 20;
bg.height=ttText.height + 20;
if (ttText.textWidth < toolTipWidth-30) {
trace("menor");
ttText.wordWrap = false;
bg.width=ttText.width + 20;
bg.height=ttText.height + 20;
}
if (mouseY<200) {
contenedor.y = Math.floor(mouseY+30);
triangle.x = bg.width /2 + triangle.width/2;
triangle.y = bg.y;
triangle.rotation=135;
}
if (mouseY>200) {
contenedor.y = Math.floor(mouseY-contenedor.height - 20);
ttText.x=10;
ttText.y=10;
triangle.x = bg.width /2 - triangle.width/2;
triangle.y = bg.y+bg.height;
triangle.rotation=-45;
}
}
}//close class
}//close package
I want to be able to initiate the class like this:
import com.cacao.tooltip;
var newTooltip:tooltip = new tooltip();
But i can`t... it is not working...
Thanks guys.
ReferenceError: Error #1069: Property button1 not found on com.cacao.tooltip and there is no default value.
at com.cacao::tooltip/com.cacao::Parse()
at com.cacao::tooltip/com.cacao::xmlLoaded()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
This is the code:
package com.cacao{
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.*;
import flash.events.*;
import flash.display.*;
import caurina.transitions.Tweener;
import flash.filters.*;
import caurina.transitions.properties.FilterShortcuts;
public class tooltip extends MovieClip {
var myXML:XML = new XML();
var xmlPath:String ="xml/tooltip.xml";
var XML_URL:String = xmlPath;
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader(myXMLURL);
var outX:Number;
var btnOver;
var Xmouse:Number;
var Ymouse:Number;
var buttonAll:XMLList;
var buttonAttr:XMLList;
var buttonText:XMLList;
var buttonActual;
var textos:XMLList;
var toolNumber:Number;
var tooltipColor:uint = 0xCCCFFF;
//TOOLTIP TEXT VARS
var fontSize:Number = 14;
var toolTipWidth:Number = 200;
var myFont1:Font = new Font1();
var myFont1B:Font = new Font1B();
var format1:TextFormat = new TextFormat();
var ttText:TextField = new TextField();
//TOOTIP BG VARS
var contenedor:MovieClip = new MovieClip();
var bg:Sprite = new Sprite();
var triangle:Sprite = new Sprite;
//etc.....
function tooltip():void {
FilterShortcuts.init();
bg.graphics.drawRect(0, 0, 50, 50);
bg.graphics.beginFill(tooltipColor);
bg.graphics.drawRect(0, 0, 50, 50);
bg.graphics.endFill();
//
bg.width = ttText.width;
format1.font = myFont1.fontName;
format1.size = fontSize;
format1.color = 0x333333;
ttText.wordWrap = true;
ttText.border = false;
ttText.multiline = true;
ttText.autoSize = TextFieldAutoSize.LEFT;
ttText.defaultTextFormat = format1;
ttText.embedFonts = true;
ttText.antiAliasType = AntiAliasType.ADVANCED;
ttText.text = "Loading";
addChild(contenedor);
contenedor.addChild(bg);
contenedor.addChild(ttText);
contenedor.addChild(triangle);
contenedor.alpha=0;
bg.alpha = 1;
triangle.alpha=1;
makeTriangle(10,10);
//LOAD XML FILE
myLoader.addEventListener("complete", xmlLoaded);
}
function makeTriangle(triangleSideW,triangleSideH) {
triangle.graphics.beginFill(tooltipColor);
var triangleSide:Number = 10;
triangle.graphics.moveTo(0, 0);
triangle.graphics.lineTo(0, triangleSide);
triangle.graphics.lineTo(triangleSideW, triangleSideH);
triangle.graphics.lineTo(0, 0);
triangle.rotation = -45;
}
function xmlLoaded(event:Event):void {
myXML = XML(myLoader.data);
Parse(myXML.button);
myXML.ignoreWhite = true;
}
function Parse(buttonInput):void {
buttonAll = buttonInput.children();
buttonAttr = buttonInput.attribute("id");
buttonText = buttonInput.texto;
//trace(buttonAll + "Length: "+buttonInput.length());
trace(buttonAttr)
for (var item:uint = 0; item < buttonInput.length(); item++) {
this[buttonAttr[item]].addEventListener(MouseEvent.MOUSE_OVER, loadTexts);
this[buttonAttr[item]].addEventListener(MouseEvent.MOUSE_OUT, removeToolTip);
}
}
function loadTexts(evt:MouseEvent) {
buttonActual = evt.currentTarget.name;
btnOver = evt.currentTarget;
splitArray(buttonActual);
contenedor.visible = false;
ttText.wordWrap = true;
ttText.htmlText = buttonText[toolNumber];
ttText.addEventListener(Event.ENTER_FRAME, toolTip);
trace("button"+buttonActual+" -- "+buttonText[toolNumber]);
Tweener.addTween(contenedor,{alpha:1,time:1, delay:.1,transition:"easeInOut"});
contenedor.mouseChildren = false;
}
function removeToolTip(evt:MouseEvent):void {
Tweener.addTween(contenedor,{alpha:0,time:.5, transition:"easeInOut", onComplete:hideToolTip});
ttText.removeEventListener(Event.ENTER_FRAME, toolTip);
}
function hideToolTip() {
contenedor.visible = false;
}
function toolTip(evt:Event):void {
Xmouse = Math.round(mouseX - ttText.width / 2 - triangle.width/2);
Ymouse = btnOver.y - ttText.height - 40;
contenedor.visible = true;
placeTool();
contenedor.x += .5 * (Xmouse - contenedor.x);
}
function splitArray(clicked) {
toolNumber = Number(clicked.split("button").join("")-1);
trace(toolNumber);
}
function placeTool() {
ttText.width = toolTipWidth;
ttText.x=10;
ttText.y=10;
ttText.wordWrap = true;
ttText.multiline = true;
bg.width=ttText.width + 20;
bg.height=ttText.height + 20;
if (ttText.textWidth < toolTipWidth-30) {
trace("menor");
ttText.wordWrap = false;
bg.width=ttText.width + 20;
bg.height=ttText.height + 20;
}
if (mouseY<200) {
contenedor.y = Math.floor(mouseY+30);
triangle.x = bg.width /2 + triangle.width/2;
triangle.y = bg.y;
triangle.rotation=135;
}
if (mouseY>200) {
contenedor.y = Math.floor(mouseY-contenedor.height - 20);
ttText.x=10;
ttText.y=10;
triangle.x = bg.width /2 - triangle.width/2;
triangle.y = bg.y+bg.height;
triangle.rotation=-45;
}
}
}//close class
}//close package
I want to be able to initiate the class like this:
import com.cacao.tooltip;
var newTooltip:tooltip = new tooltip();
But i can`t... it is not working...
Thanks guys.