![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2007
Сообщений: 36
|
Помогите, пожалуйста, решить такую задачу.
Есть Shape нарисованный в стиле: TLine=new Shape;
TLine.graphics.beginFill(0x009900);
TLine.graphics.moveTo(StartPoints[0],StartPoints[1]);
TLine.graphics.lineTo(StartPoints[2],StartPoints[3]);
for(var j:int=0;j<NewPoints.length;j+=2)
{
TLine.graphics.lineTo(NewPoints[j],NewPoints[j+1]);
}
TLine.graphics.lineTo(StartPoints[4],StartPoints[5]);
TLine.graphics.lineTo(StartPoints[6],StartPoints[7]);
TClip.addChild(TLine);
В AS2 можно было просто проскейлить в минус, и поменять глубину. А в AS3 же если просто его дублировать(присваивать) он отрисовывает новый но оригинал становится невидим. И ещо: скейл по Y в минус приводит к исчезновению объекта, который скейлю… Очень нужна помощь. |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 467
|
|
|
|||||
|
Регистрация: Sep 2007
Сообщений: 36
|
Вот более подробный код:
package main {
import flash.display.MovieClip;
import flash.display.Graphics;
import flash.display.Shape;
dynamic public class TEST extends MovieClip {;
var TLine:Shape = new Shape();
var DLine:Shape = new Shape();
var TClip:MovieClip = new MovieClip();
var DClip:MovieClip = new MovieClip();
var StartPoints:Array;
public function TEST()
{
StartPoints=new Array();
{
StartPoints.push(50);StartPoints.push(25);
StartPoints.push(50);StartPoints.push(50);
StartPoints.push(400);StartPoints.push(50);
StartPoints.push(400);StartPoints.push(25);
}
TLine=new Shape;
TLine.graphics.beginFill(0x009900);
TLine.graphics.moveTo(StartPoints[0],StartPoints[1]);
TLine.graphics.lineTo(StartPoints[2],StartPoints[3]);
TLine.graphics.lineTo(StartPoints[4],StartPoints[5]);
TLine.graphics.lineTo(StartPoints[6],StartPoints[7]);
//TClip.addChild(TLine);
T1Clip.addChild(TLine);
T2Clip.addChild(TLine);
}
}
}
|
|
|||||
|
Регистрация: Sep 2007
Сообщений: 36
|
Цитата:
Во-первых там отражают битммап, и достаточно сложно. Мне надо сделать копию и отразить шейп или мувиклип. и желательно в несколько строк. Например как в AS2 – это делалось: дублируешь на другую глубину и скейлиш на -1. |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 467
|
Цитата:
![]() |
|
|||||
|
Регистрация: Sep 2007
Сообщений: 36
|
Согласен. Но во флексе это работало )))
Жаль что во флеше это не так. И все же, как это сделать???? Это явно должно быть просто. Последний раз редактировалось SSergeyS; 23.11.2007 в 12:01. |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 467
|
Один из вариантов:
function createShape():Shape
{
var shape:Shape = new Shape();
shape.graphics.beginFill(0x009900);
shape.graphics.moveTo(StartPoints[0],StartPoints[1]);
shape.graphics.lineTo(StartPoints[2],StartPoints[3]);
shape.graphics.lineTo(StartPoints[4],StartPoints[5]);
shape.graphics.lineTo(StartPoints[6],StartPoints[7]);
return shape;
}
T1Clip.addChild(createShape());
T2Clip.addChild(createShape());
|
|
|||||
|
Регистрация: Sep 2007
Сообщений: 36
|
Сделал пока вот-так:
package main {
import flash.display.MovieClip;
import flash.display.Graphics;
import flash.display.Shape;
import flash.events.MouseEvent;
dynamic public class TEST extends MovieClip {;
var TLine:Shape = new Shape();
var DLine:Shape = new Shape();
var TClip:MovieClip = new MovieClip();
var DClip:MovieClip = new MovieClip();
var StartPoints:Array;
private function Click(e:MouseEvent):void
{
TLine=new Shape;
TLine.graphics.beginFill(0x009900);
TLine.graphics.moveTo(StartPoints[0],StartPoints[1]*-1);
TLine.graphics.lineTo(StartPoints[2],StartPoints[3]*-1);
TLine.graphics.lineTo(50,15*-1);
TLine.graphics.lineTo(StartPoints[4],StartPoints[5]*-1);
TLine.graphics.lineTo(StartPoints[6],StartPoints[7]*-1);
T1Clip.addChild(TLine);
}
public function TEST()
{
Button1.addEventListener(MouseEvent.CLICK, Click);
StartPoints=new Array();
{
StartPoints.push(0);StartPoints.push(0);
StartPoints.push(0);StartPoints.push(25);
StartPoints.push(400);StartPoints.push(25);
StartPoints.push(400);StartPoints.push(0);
}
TLine=new Shape;
TLine.graphics.beginFill(0x009900);
TLine.graphics.moveTo(StartPoints[0],StartPoints[1]);
TLine.graphics.lineTo(StartPoints[2],StartPoints[3]);
TLine.graphics.lineTo(50,15);
TLine.graphics.lineTo(StartPoints[4],StartPoints[5]);
TLine.graphics.lineTo(StartPoints[6],StartPoints[7]);
T1Clip.addChild(TLine);
}
}
}
|
|
|||||
|
Регистрация: Sep 2007
Сообщений: 36
|
блин не обновил страницу - а вообще практически аналогично! (только мне надо отражение)
А еще варианты? |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 467
|
shape.scaleY = -1;
|
![]() |
![]() |
Часовой пояс GMT +4, время: 13:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|