Hey guys, I am wondering why is there a seperate as file in a zip I downloaded?
There are the files slider.as and slider.fla.
There is only one frame in the fla file and I was wondering if I can combine the fla and as file to make it work, since I will be combining it with another file.
This is the Slider.as file:
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Slider extends MovieClip {
public static var SLIDE_ALIGN_LEFT:int = 1;
public static var SLIDE_ALIGN_RIGHT:int = 2;
public static var SLIDE_ALIGN_CENTER:int = 3;
private var mSlideOffset:Number;
private var mSlidebarOffsetLeft:Number;
private var mSlidebarOffsetRight:Number;
private var mSlidebarEffectiveWidth:Number;
private var mSlidebarEffectiveX:Number;
public function Slider():void {
slide.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
addEventListener(MouseEvent.MOUSE_OUT, mouseUpHandler);
slidebar.addEventListener(MouseEvent.CLICK, mouseMoveHandler);
// Assume alignment of left.
mSlideOffset = 0;
// Initialize the slidebar assuming no offsets.
mSlidebarOffsetLeft = 0;
mSlidebarOffsetRight = 0;
updateSlidebarEffectiveValues();
}
public function get value():Number {
return (slide.x-mSlidebarEffectiveX+mSlideOffset)/mSlidebarEffectiveWidth;
}
public function set value(n:Number):void {
slide.x = mSlidebarEffectiveWidth * n - mSlideOffset + mSlidebarEffectiveX;
}
public function set slideAlign(alignment:int):void {
if(alignment == SLIDE_ALIGN_RIGHT)
mSlideOffset = slide.width;
else if(alignment == SLIDE_ALIGN_CENTER)
mSlideOffset = slide.width/2;
else
mSlideOffset = 0;
}
public function set slidebarOffset(offset:Number):void {
mSlidebarOffsetLeft = offset;
mSlidebarOffsetRight = offset;
updateSlidebarEffectiveValues();
}
public function set slidebarOffsetLeft(offset:Number):void {
mSlidebarOffsetLeft = offset;
updateSlidebarEffectiveValues();
}
public function set slidebarOffsetRight(offset:Number):void {
mSlidebarOffsetRight = offset;
updateSlidebarEffectiveValues();
}
private function updateSlidebarEffectiveValues():void {
mSlidebarEffectiveWidth = slidebar.width-mSlidebarOffsetRight-mSlidebarOffsetLeft;
mSlidebarEffectiveX = slidebar.x+mSlidebarOffsetLeft;
}
private function mouseDownHandler(event:MouseEvent):void {
addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}
private function mouseUpHandler(event:MouseEvent):void {
trace(event);
if(event.relatedObject != this && event.relatedObject != slide && event.relatedObject != slidebar)
removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}
private function mouseMoveHandler(event:MouseEvent):void {
if(slidebar.mouseX < mSlidebarOffsetLeft)
slide.x = slidebar.x+mSlidebarOffsetLeft-mSlideOffset;
else if(slidebar.mouseX > slidebar.width-mSlidebarOffsetRight)
slide.x = slidebar.x+slidebar.width-mSlidebarOffsetRight-mSlideOffset;
else
slide.x = this.mouseX - mSlideOffset;
}
}
}
When I try to copy that code, and paste it into the first frame of the Slider.fla to the action script its giving me an error that it cant be nested.
This is the fla file: http://uppit.com/v/AMTTEXHM
If someone can combine it to make it work off of one file named slider.fla would be great.
Iv gotten some help with this but not alot worked:
- Package is not supported in Flash AS editor delete it and its encapsulating tags
- Remove public class extends movieclip and its encapsulating tags
- public functions are not supported in AS editor - change from “public function” to “function”
- private functions are not supported in AS editor - change from “private function” to “function”
- Variables cannot be public, private or static within the flash AS editor, remove “public static”, “private”
Compile after done and see what minor errors you get.
and:
import flash.display.MovieClip;
import flash.events.MouseEvent;
is not necessary anymore. since you are targeting a frame on an existing displayObject and the exporter includes it automatically.
if you what to have your slider available for instantiation copy the code with Darcey’s modification into a MovieClip symbol and check the Export for ActionScript property.
you can class-name it “Slider” and you have the same functionality (more or less).
if you need the getters and setters (witch i believe you do), change them into simple functions like:
public function get value():Number
becomes
function getValue():Number
and
public function set value(n:Number):void
becomes
function setValue(n:Number):void
so instead of
trace(slider.value);
you will call
trace(slider.getValue());
and so on.
have fun downgrading your code, we are all experts in this
This is what I came up with:
[QUOTE=encoder;974208]
import flash.display.MovieClip;
import flash.events.MouseEvent;
is not necessary anymore. since you are targeting a frame on an existing displayObject and the exporter includes it automatically.
if you what to have your slider available for instantiation copy the code with Darcey’s modification into a MovieClip symbol and check the Export for ActionScript property.
you can class-name it “Slider” and you have the same functionality (more or less).
if you need the getters and setters (witch i believe you do), change them into simple functions like:
public function get value():Number
becomes
function getValue():Number
and
public function set value(n:Number):void
becomes
function setValue(n:Number):void
so instead of
trace(slider.value);
you will call
trace(slider.getValue());
and so on.
have fun downgrading your code, we are all experts in this ;)[/QUOTE]
I have done what both of you guys suggested together.
Here are the errors I get and the updated coding:
stop();
login_but.addEventListener(MouseEvent.MOUSE_DOWN,loginButtonHandler);
function loginButtonHandler(event:MouseEvent):void {
gotoAndStop(3);
}
create_btn.addEventListener(MouseEvent.MOUSE_DOWN,createButtonHandler);
function createButtonHandler(event:MouseEvent):void {
gotoAndStop(5);
}
quit_btn.addEventListener(MouseEvent.MOUSE_DOWN,quitButtonHandler);
function quitButtonHandler(event:MouseEvent):void {
navigateToURL(new URLRequest("http://www.google.com"), "_self");
}
var SLIDE_ALIGN_LEFT:int = 1;
var SLIDE_ALIGN_RIGHT:int = 2;
var SLIDE_ALIGN_CENTER:int = 3;
var mSlideOffset:Number;
var mSlidebarOffsetLeft:Number;
var mSlidebarOffsetRight:Number;
var mSlidebarEffectiveWidth:Number;
var mSlidebarEffectiveX:Number;
function Slider():void {
slide.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
addEventListener(MouseEvent.MOUSE_OUT, mouseUpHandler);
slidebar.addEventListener(MouseEvent.CLICK, mouseMoveHandler);
// Assume alignment of left.
mSlideOffset = 0;
// Initialize the slidebar assuming no offsets.
mSlidebarOffsetLeft = 0;
mSlidebarOffsetRight = 0;
updateSlidebarEffectiveValues();
}
function getValue():Number {
return (slide.x-mSlidebarEffectiveX+mSlideOffset)/mSlidebarEffectiveWidth;
}
function setValue(n:Number):void {
slide.x = mSlidebarEffectiveWidth * n - mSlideOffset + mSlidebarEffectiveX;
}
function set slideAlign(alignment:int):void {
if(alignment == SLIDE_ALIGN_RIGHT)
mSlideOffset = slide.width;
else if(alignment == SLIDE_ALIGN_CENTER)
mSlideOffset = slide.width/2;
else
mSlideOffset = 0;
}
function set slidebarOffset(offset:Number):void {
mSlidebarOffsetLeft = offset;
mSlidebarOffsetRight = offset;
updateSlidebarEffectiveValues();
}
function set slidebarOffsetLeft(offset:Number):void {
mSlidebarOffsetLeft = offset;
updateSlidebarEffectiveValues();
}
function set slidebarOffsetRight(offset:Number):void {
mSlidebarOffsetRight = offset;
updateSlidebarEffectiveValues();
}
function updateSlidebarEffectiveValues():void {
mSlidebarEffectiveWidth = slidebar.width-mSlidebarOffsetRight-mSlidebarOffsetLeft;
mSlidebarEffectiveX = slidebar.x+mSlidebarOffsetLeft;
}
function mouseDownHandler(event:MouseEvent):void {
addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}
function mouseUpHandler(event:MouseEvent):void {
trace(event);
if(event.relatedObject != this && event.relatedObject != slide && event.relatedObject != slidebar)
removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}
function mouseMoveHandler(event:MouseEvent):void {
if(slidebar.mouseX < mSlidebarOffsetLeft)
slide.x = slidebar.x+mSlidebarOffsetLeft-mSlideOffset;
else if(slidebar.mouseX > slidebar.width-mSlidebarOffsetRight)
slide.x = slidebar.x+slidebar.width-mSlidebarOffsetRight-mSlideOffset;
else
slide.x = this.mouseX - mSlideOffset;
}
Do not mind:
stop();
login_but.addEventListener(MouseEvent.MOUSE_DOWN,loginButtonHandler);
function loginButtonHandler(event:MouseEvent):void {
gotoAndStop(3);
}
create_btn.addEventListener(MouseEvent.MOUSE_DOWN,createButtonHandler);
function createButtonHandler(event:MouseEvent):void {
gotoAndStop(5);
}
quit_btn.addEventListener(MouseEvent.MOUSE_DOWN,quitButtonHandler);
function quitButtonHandler(event:MouseEvent):void {
navigateToURL(new URLRequest("http://www.google.com"), "_self");
}
That is the coding for the buttons on the same frame.
These are the errors I get:
It seems to have errors on 2 things constantly.
In the background I highlighted the frame where the slider will go.
Can anyone help me out the rest of the way?