Solved

Curve lines

Posted on 2003-12-04
10
473 Views
Last Modified: 2010-04-03
Continuing from http://www.experts-exchange.com/Web/WebDevSoftware/Flash/Q_20797391.html.

I want the triangle to curve at some point to look like SAIL, so lets say 3 additional curve points need to be impoted to do the job. There could be up to 10 point for a perfect curves of a SAIL.

 
0
Comment
Question by:valentin_v
  • 5
  • 4
10 Comments
 
LVL 3

Expert Comment

by:rugu_16
ID: 9900717
hi,
Follow these steps:

(1) make a triangle in flash
(2) put your mouse curor on any one line of triangle
(3) you will see small curve line near the mouse pointer
(4) when that curvy line shows up , press your mouse and drag to the direction you wanna curve it

thanking you
0
 
LVL 27

Expert Comment

by:negatyve
ID: 9902688
Could you make a an example picture?
0
 

Author Comment

by:valentin_v
ID: 9903782
Hi, This is what I need them to look like.

http://www.northsailscanada.com/test/sails.swf

Now they look like sails, not triangles.

I think I can acheive the proper curver with only one extra point on each line of triangle. I tried but can't get it to work.

Again, those coordinated need to be takes from triangles.xml , If the curve can be done with only one point on each line then it would be perfect.

Thanks in advance

Valentin
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
LVL 27

Accepted Solution

by:
negatyve earned 500 total points
ID: 9909336
ok, follow me.


BOXES.XML (no changes)
============================================================
<?xml version="1.0" encoding="UTF-8"?>
<boxes>
      <item
            thickness="1" rgb="002040" alpha="100"
            mx="140" my="10"
            x1="160" y1="10"
            x2="160" y2="100"
            x3="140" y3="100"
            x4="140" y4="10" />
      <item
            thickness="1" rgb="002040" alpha="100"
            mx="180" my="10"
            x1="260" y1="10"
            x2="260" y2="100"
            x3="180" y3="100"
            x4="180" y4="10" />
</boxes>
============================================================




TRIANGLES XML (changes: look at the attributes of the first
node, "sail". If sail is equal to "no", flash movie will draw
triangles, if is equal to "yes", will draw sails. So, if you
want to switch from firsts to seconds, just change that
attribute.
There are a few more attributes in the inner nodes: for each
triangle vertex, there are two anchor points which make sails
drawing possible. If the "sail" attribute of the first node
is set to "no", they are simply ignored)
============================================================
<?xml version="1.0" encoding="UTF-8"?>
<triangles sail="yes">
      <item
            link="http://www.altavista.com/" target="_blank"
            info="wow!, nice portal"
            thickness="1" rgb="002040" alpha="100"
            mx="100" my="130"
            x1="358" y1="130"
            a1="290" b1="150"
            x2="358" y2="260"
            a2="370" b2="200"
            x3="100" y3="130"
            a3="290" b3="220" />
      <item
            link="http://www.yahoo.com/" target="_self"
            info="yeah, what a good (sic) search engine!"
            thickness="2" rgb="FFCC00" alpha="100"
            mx="400" my="130"
            x1="663" y1="130"
            a1="400" b1="150"
            x2="400" y2="232"
            a2="400" b2="200"
            x3="400" y3="130"
            a3="370" b3="150" />
</triangles>
============================================================




FLASH MOVIE
============================================================
triangles_xml = new XML();
triangles_xml.path = this;
triangles_xml.ignoreWhite = true;
triangles_xml.onLoad = function(ok)
{
      if (ok) {
            this.triangles = this.firstChild.childNodes;
            // --- ADDED CODE -----------------------------
            this.drawTriangles(this.firstChild.attributes.sail);
            // --------------------------------------------
            clearInterval(this.loadID);
            this.loadID = setInterval(this, "updateData", 5000);
      } else {
            trace("XML FILE NOT FOUND");
      }
};
triangles_xml.updateData = function()
{
      for (var i = 0; i < this.triangles.length; i++) {
            this.path["tre" + i].removeMovieClip();
      }
      delete this.triangles;
      // --- ADDED CODE -----------------------------
      // --- use online to avoid caching ------------
      // this.load("triangles.xml?update=" + (new Date().getTime()));
      this.load("triangles.xml");
      // --------------------------------------------
};
triangles_xml.drawTriangles = function(sail)
{
      for (var i = 0; i < this.triangles.length; i++) {
            var pen = this.path.createEmptyMovieClip("tre" + i, i);
            var attributes = this.triangles[i].attributes;
            pen.lineStyle(attributes.thickness, parseInt(attributes.rgb, 16), attributes.alpha);
            pen.moveTo(attributes.mx, attributes.my);
            pen.beginFill(parseInt(attributes.rgb, 16), attributes.alpha);
            for (var j = 1; j < 4; j++) {
                  // --- MODIFIED CODE -------------------------
                  if(sail == "yes"){
                        pen.curveTo(attributes["a" + j], attributes["b" + j], attributes["x" + j], attributes["y" + j]);
                  } else {
                        pen.lineTo(attributes["x" + j], attributes["y" + j]);
                  }
                  // -------------------------------------------
            }
            pen.endFill();
            pen.__target = attributes.target;
            pen.__link = attributes.link;
            pen.__info = attributes.info;
            pen.onRelease = function()
            {
                  this.getURL(this.__link, this.__target);
            };
            pen.onRollOver = function()
            {
                  this._parent.info_txt.text = this.__info;
                  this._parent.info_txt._visible = true;
            };
            pen.onRollOut = function()
            {
                  this._parent.info_txt.text = "";
                  this._parent.info_txt._visible = false;
            };
      }
};
triangles_xml.load("triangles.xml");
boxes_xml = new XML();
boxes_xml.path = this;
boxes_xml.ignoreWhite = true;
boxes_xml.onLoad = function(ok)
{
      if (ok) {
            this.boxes = this.firstChild.childNodes;
            this.drawBoxes();
            clearInterval(this.loadID);
            this.loadID = setInterval(this, "updateData", 5000);
      } else {
            trace("XML FILE NOT FOUND");
      }
};
boxes_xml.updateData = function()
{
      for (var i = 0; i < this.boxes.length; i++) {
            this.path["box" + i].removeMovieClip();
      }
      delete this.boxes;
      // --- ADDED CODE -----------------------------
      // --- use online to avoid caching ------------
      // this.load("boxes.xml?update=" + (new Date().getTime()));
      this.load("boxes.xml");
      // --------------------------------------------
};
boxes_xml.drawBoxes = function()
{
      for (var i = 0; i < this.boxes.length; i++) {
            var pen = this.path.createEmptyMovieClip("box" + i, i + 1000);
            var attributes = this.boxes[i].attributes;
            pen.lineStyle(attributes.thickness, parseInt(attributes.rgb, 16), attributes.alpha);
            pen.moveTo(attributes.mx, attributes.my);
            for (var j = 1; j < 5; j++) {
                  pen.lineTo(attributes["x" + j], attributes["y" + j]);
            }
      }
};
boxes_xml.load("boxes.xml");
function createsMyText()
{
      this.createTextField("info_txt", 10000, 0, 0, 200, 1);
      this.info_txt.border = this.info_txt.background = true;
      this.info_txt.autoSize = true;
      this.info_txt._visible = false;
}
createsMyText();
============================================================
0
 

Author Comment

by:valentin_v
ID: 9919901
negatyve .......YOU THE BEST

What if I want extra points for curves lets say 1 more point on each line

Thanks in advance
0
 

Author Comment

by:valentin_v
ID: 9920837
Just a small question if you need points I'll give you

Sometimes I;ll load 30 sails at once, and I need to be able to scroll horizontally through movie to see all 30 in a line. Like this I can see maybe 10 ro 12 but no more.

How Can I do that

Thanks
0
 
LVL 27

Expert Comment

by:negatyve
ID: 9933903
hey, I've been off for some day, as soon as I can I'll make you an example with the scrollpane, to scroll all sails.. :)
0
 
LVL 27

Expert Comment

by:negatyve
ID: 9937613
0
 

Author Comment

by:valentin_v
ID: 9964690
The problem that I encounter with the Scrolling is the INFO that gets displayed at the point 0,0 .

If I change the to another value, scrolls will not work.
0
 
LVL 27

Expert Comment

by:negatyve
ID: 10003017
try to change the script this way:

.....
pen.onRollOver = function()
{
      this._parent.info_txt._x = this._parent._parent.getScrollPosition().x
      this._parent.info_txt.text = this.__info;
      this._parent.info_txt._visible = true;
};
.....
and use the "createsMyText" function as it is
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
SCCM 2012 - Deploy Flash 16 7,024
Open Source MP4 Flash Player 2 189
Firefox fullscreen video lags 4 170
How to convert image files to a movie file 6 111
I come across a lot of question about how to access things in the document class from a movieclip, or accessing something from a movieclip in the document class. It took me a while to figure this out but once I did it makes life so much easier. …
This article describes a solution to a problem of subloading one movie into another when they have different SWF versions. Sometime back, I was working on an ActionScript project while I came across an interesting fact which I would like to share…
In this tutorial viewers will learn how to create a basic shape tween animation in Flash including shape hints for smooth animation Open a new document in Flash: Draw a shape: Select another frame (how long you want the tween to be): Right click and…
The goal of the tutorial is to teach the user how to how to load their YouTube profile onto Flash Media Live Encoder.

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question