我要创建一个闪光文件, 从 1 张图像中创建模式形状。 它需要反射或反射一个已装入的拖动的电影剪切, 并在您移动并拖动电影剪切时更新反射/ mirror 。
I had come across: http://active.tutsplus.com/freebies/actionscript-30-classes/dynamic-reflection-generator-class-for-as3/ which does very similar to what i m after. The demo seems ok but as in the comments there is lots of slowdown and lag in the dragging, especially when the image you drag starts off larger.
对不起,问什么似乎 似乎相当一点点, 我不在完全的解决方案之后, 我只需要首先知道,如果它能够做到, 我如何能够去实现它?
我希望以下图像能帮助解释:
Stage 1: Loading the users pattern image onto the stage as seen here:
http://www.tiltworld.co.uk/yhfus6fh/patten_1.png
Stage 2: Shows how i want the reflection to work - in 4 blocks on each side of the pattern:
.../模式_2.png
(与以上链接相同,仅与图案_ 2.png 结尾处相同)
Stage 3: Getting the reflection to adapt to where the user drags the pattern around on the stage. As in the image the reflection happens within the 4 blocks on each side rather than attached directly onto/next to the original movieclip.
.../模式3.png
(与以上 2 的链接相同, 结尾处有图案_ 3. png )
劳伦:
p. s. 下面我目前的代码显示目前阶段 1 - 我如何使用文件Reference. load 然后启动 Drag 将其拖动到舞台上 。
// Create FileReference.
var draggableMC:FileReference;
// Create Loader to hold image content
var draggable_mc_loader:Loader = new Loader();
var draggable_mc_content:Sprite = new Sprite();
// Select Button Function.
select_btn.addEventListener(MouseEvent.CLICK, onselect_btnClicked);
function onselect_btnClicked(event:MouseEvent):void {
draggableMC=new FileReference();
draggableMC.addEventListener(Event.SELECT, onFileSelected);
var imageTypeFilter:FileFilter = new FileFilter("JPG/PNG Files","*.jpeg; *.jpg;*.gif;*.png");
draggableMC.browse([imageTypeFilter]);
}
// File Selected Function.
function onFileSelected(event:Event):void {
draggableMC.addEventListener(Event.COMPLETE, onFileLoaded);
draggableMC.load();
}
// File Loaded Function.
function onFileLoaded(event:Event):void {
var fileReference:FileReference=event.target as FileReference;
var data:ByteArray=fileReference["data"];
var movieClipLoader:Loader=new Loader();
movieClipLoader.loadBytes(data);
movieClipLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onMovieClipLoaderComplete);
draggableMC.removeEventListener(Event.COMPLETE, onFileLoaded);
}
// Load Image onto Stage Function.
function onMovieClipLoaderComplete(event:Event):void {
var loadedContent:DisplayObject=event.target.content;
draggable_mc_loader =event.target.loader as Loader;
draggable_mc_loader.x=10;
draggable_mc_loader.y=10;
draggable_mc_content.buttonMode=true;
draggable_mc_content.addChild(draggable_mc_loader);
addChild(draggable_mc_content);
}
// Drag
draggable_mc_content.addEventListener(MouseEvent.MOUSE_DOWN, drag);
stage.addEventListener(MouseEvent.MOUSE_UP, drop);
function drag(event:Event):void {
draggable_mc_content.startDrag();
}
function drop(event:Event):void {
draggable_mc_content.stopDrag();
}