Changing Code Into AS3
I have a code that I wrote in AS2 and I am now trying to
convert it into AS3 . . . When I converted it this is what I came
up with but I can still not get it to work.
Can someone help me fix it? I used a coverter for some of it
http://www.5etdemi.com/convert/index.php
. . . does anyone know of a better one?
Thanks for any help fixing the code
:
Similar Messages
-
Dummy Guide needed for converting AS2 code into AS3
I have to convert my existing AS2 code into AS3, but I might as well be reading chinese. I never even began to learn AS3, it was still fairly new at the time and the class ended before we had an opportunity to even touch on it. My major was not web design, it was the print side of design. I took an additional class, after I graduated, to learn web design and our teacher told us, basically, that we were designers, not coders so we won't be getting much into actionscripting, beyond the basics. At the time I was relieved, but looking back, I really wish we would have gotten more into it. Bottom line, I need to learn now.
Is there ANYONE that can help me out? I will list my code below, buy I am way beyond lost any help that can be provided, I would be so grateful!!!!
On the main timeline I have the basic..
stop(); -- I found the AS3 version, but I don't know what I'm looking at. I get "not_yet_set.stop()" and there are are 8 options I can choose from. I just want the timeline to stop until I tell it where to go next. And what is "not_yet_set"
Then I have my buttons, which are, basically...
on (release) {
gotoAndStop("Home");
Or "gotoAndPlay("Whatever");"
I also have buttons for scrolling...
on (press) {
play();
on (release) {
stop();
AND
on (press) {
_root.AboutMe_Controller.gotoAndPlay(…
on (release) {
_root.AboutMe_Controller.gotoAndStop(…
For the on(release) command, this is what I found as the AS3 version: not_set_yet.dispatchEvent()because that's really as1 code, you have steeper learning curve than going from as2 to as3.
first, remove all code from objects, assign instance names to your buttons and you can then start on as3:
// so, if you name your home button, home_btn:
home_btn.addEventListener(MouseEvent.CLICK,homeF);
function homeF(e:MouseEvent):void{
gotoAndStop("Home");
p.s. the not_yet_set stuff is there because you tried to use script assist or some other actionscript shortcut. -
Convert onEnterFrame Event Handler AS2 code into AS3
My code of AS2 is given below. I do not know what event handler type is used and which event handler is used in AS3.
onEnterFrame = function(){this.addEventListener(Event.ENTER_FRAME,onEf);
// "this" references the movie itself, you can also use "stage" or the instance name of an object on the stage
// look up addEventListener in the online help. This method takes two arguments, the event that you want to "listen" for and the name of the function to execute when the event occurs.
// the function that will be called when the event occurs. It takes one argument that corresponds with the first argument of the addEventListener method.
function onEf(event:Event):void { -
I used a tutorial http://www.flash-game-design.com/flash-tutorials/funky-flash-website-tutorial-5.html to make a menu for my application, I've tried following tips on how to change AS2 code to AS3, but it just doesn't work.
menu = ["bulls", "about", "roster", "schedule"];
var current = menu[0];
for (var i = 0; i<menu.length; i++) {
var b = menu[i];
this[b+"_btn"].stars._visible = false;
this[b+"_btn"].txt = b;
this[b+"_btn"].onPress = function() {
_root.site[current+"_btn"].stars._visible = false;
_root.site[this.txt+"_btn"].stars._visible = true;
current = this.txt;
_root.site.content.gotoAndStop(this.txt)
this[current+"btn"].stars._visible = true;
this.onEnterFrame = function() {
this[current+"_btn"].stars.s1._rotation += 1;
this[current+"_btn"].stars.s2._rotation += 0.5;
Thank you,
GlennJust a note. Function declarations in a loop is an EXTREMELY bad practice that will lead to many problems if it doesn't have some already. So, the following lines:
for (var i:int = 0; i<menu.length; i++) {
var b:String = menu[i];
this[b+"_btn"].stars.visible = false;
this[b+"_btn"].addEventListener(MouseEvent.CLICK,fn);
this[b+"_btn"].txt=b;
function fn(e:MouseEvent):void{
this[current].stars.visible = false;
var nam:String=e.target.parent.name;
this[nam].stars.visible = true;
current = nam;
//MovieClip(root).site.content.gotoAndStop(this.txt)
should be:
for (var i:int = 0; i < menu.length; i++) {
var b:String = menu[i];
this[b+"_btn"].stars.visible = false;
this[b+"_btn"].addEventListener(MouseEvent.CLICK,fn);
this[b+"_btn"].txt=b;
function fn(e:MouseEvent):void {
this[current].stars.visible = false;
var nam:String=e.target.parent.name;
this[nam].stars.visible = true;
current = nam;
//MovieClip(root).site.content.gotoAndStop(this.txt) -
Change some code from as3 to as2
Hi, I want to use as2 because it compatible with my website.
I want to change some code from as3 to as2
/////////////////////////////image1//////////////////////////////// if(MovieClip(this.parent).imagetxt.text == "a") { var imgurl:String = "C:/Users/Thái/Desktop/ls/cotton-1.jpg"; var myrequest:URL = new URL(imgurl); myloader.scaleContent = true; myloader.load(myrequest); } /////////////////////////////image2//////////////////////////////// else if(MovieClip(this.parent).imagetxt.text == "b") { var imgurl2:String = "http://aloflash.com/images/upload/3.jpg"; var myrequest2:URLRequest = new URLRequest(imgurl2); myloader.scaleContent = true; myloader.load(myrequest2); }thank you for your support.use:
var myloader:MovieClip=this.createEmptyMovieClip("loader_mc",this.getNextHighestDepth());
if (MovieClip(this._parent).imagetxt.text == "a") {
var imgurl:String = "C:/Users/Thái/Desktop/ls/cotton-1.jpg";
myloader.load(imgurl);
} else if (MovieClip(this._parent).imagetxt.text == "b") {
var imgurl2:String = "http://aloflash.com/images/upload/3.jpg
myloader.load(imgurl2); -
Help! Convert simple Flash AS2 code to AS3
Hi everyone,
I'm a Flash beginner and followed a tutorial: http://www.webwasp.co.uk/tutorials/018/tutorial.php ... to learn how to make a "live paint/draw" effect. I didn't realize that if I made something in AS2, I wouldn't be able to embed it (and have it work) into my root AS3 file, where I've got a bunch of other stuff going on. I've tried following tips on how to change AS2 code to AS3, but it just doesn't work. I know it's simple code, and that some genius out there can figure it out, but I'm at a loss. Please help!
Here's the AS2 code:
_root.createEmptyMovieClip("myLine", 0);
_root.onMouseDown = function() {
myLine.moveTo(_xmouse, _ymouse);
ranWidth = Math.round((Math.random() * 10)+2);
myLine.lineStyle(ranWidth, 0xff0000, 100);
_root.onMouseMove = function() {
myLine.lineTo(_xmouse, _ymouse);
_root.onMouseUp = function() {
_root.onMouseMove = noLine;
Thanks in advance!
Signed,
Nicolle
Flash DesperadoConsidering the code is on timeline:
var myLine:Sprite = new Sprite();
addChild(myLine);
var g:Graphics = myLine.graphics;
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
function onMouseDown(e:MouseEvent):void {
var ranWidth:Number = Math.round((Math.random() * 10) + 2);
g.clear();
g.lineStyle(ranWidth, 0xFF0000, 1);
addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
function onMouseMove(e:MouseEvent):void {
g.lineTo(mouseX, mouseY);
function onMouseUp(e:MouseEvent):void {
removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
removeEventListener(MouseEvent.MOUSE_UP, onMouseUp); -
Adding full screen code into Captivate 5's basic Button Widget
Hi everyone!
I was able to create a full screen button in Flash that works with Captivate 5 projects, however, I want to be able to active the full screen feature for every button created using the basic 'button' widget that comes with the Captivate program. I am not a AS3 programmer so I think my issue is that I am confused as to where to place the full screen code into the existing 'button widget' code. Below is the code ...
Thanks in advance!!
edlearner
HERE IS THE FULLSCREEN CODE THAT I USE
button_name.addEventListener(MouseEvent.CLICK, fullScreen_action);
function fullScreen_action(event:MouseEvent):void {
stage.displayState=StageDisplayState.FULL_SCREEN;
stop();
HERE IS THE BASIC CODE FOR THE BUTTON WIDGET IN CAPTIVATE 5
//..........................Template for Static Widget(AS3)....................
//flash construct to use external interface : This is needed to use flash functionality for communication between two swfs
import flash.external.ExternalInterface;
import fl.controls.ComboBox;
var widgetMode:String = '';
var widgetParam:String = '';
var varHand:Object = null;
var movieHandle:Object = null;
XML.prettyIndent = 0;
XML.prettyPrinting = false;
XML.ignoreWhitespace = true;
var checkUpdatedXML = false;
var playedByButton = false;
var pauseFrame = 0;
var addednoskipframe = false
var myXML:XML;
var myData:String = '<element1><textProperties><font face="Trebuchet MS" style="" size="12"/><textDecoration bold="true" underline="false" italic="false"/><color textColor="0x000000" highlightRequired="false" highlightColor="0xffffff"/></textProperties><captions style="BUTTON_1" themeLabel="0" backColor="0xffffcc" eventAssign="" eventParam="" txtXPos="9" txtYPos="4" imgXPos="190" imgYPos="40" a="1" b="0" c="0" d="1" tx="0" ty="0" bgSelected="false" borderColor="0xff9933" borderSelected="false" containerXPos="" containerYPos=""><text visible="true" width="42" height="20" a="1" b="0" c="0" d="1" tx="18" ty="4">Button</text><image visible="false" width="22" height="18" a="1" b="0" c="0" d="1" tx="NaN" ty="NaN"></image></captions></element1>';
var xmlConfig:String = '<configs><styles label="Ivory" movieclip="BUTTON_1" backColor=""/><styles label="Frosted" movieclip="BUTTON_8" backColor=""/><styles label="Grey Space" movieclip="BUTTON_9" backColor=""/><styles label="Honey Comb" movieclip="BUTTON_10" backColor=""/><styles label="Mountain Blue" movieclip="BUTTON_11" backColor=""/><styles label="Aero" movieclip="BUTTON_12" backColor=""/><styles label="Gradient" movieclip="BUTTON_13" backColor=""/><styles label="Vivid 1" movieclip="BUTTON_14" backColor=""/><styles label="Vivid 2" movieclip="BUTTON_15" backColor=""/><styles label="Aqua" movieclip="BUTTON_16" backColor=""/><styles label="Glitter" movieclip="BUTTON_17" backColor=""/></configs>';
//var xmlConfig:String = '<configs><styles label="Button 1" movieclip="BUTTON_1" backColor=""/><styles label="Button 2" movieclip="BUTTON_2" backColor=""/><styles label="Button 1" movieclip="BUTTON_1" backColor=""/><styles label="Button 2" movieclip="BUTTON_2" backColor=""/><styles label="Button 3" movieclip="BUTTON_3" backColor=""/><styles label="Button 4" movieclip="BUTTON_4" backColor=""/></configs>';
var myConfig:XML = new XML(xmlConfig);
var myWM = "";
var mc:MovieClip;
CaptionMc.visible = false;
textFormatterMc.visible = false;
//update ();
var objName;
function fnHandleButtonEvent (evt:MouseEvent)
if (varHand != null)
switch (Number(myXML.captions.@eventAssign))
case 1 :
varHand.rdcmndResume = 1;
break;
case 2 :
varHand.rdcmndPrevious = 1;
break;
case 3 :
varHand.rdcmndNextSlide = 1;
break;
case 4 :
varHand.cpCmndGotoSlide = varHand.cpInfoLastVisitedSlide;
varHand.rdcmndResume = 1;
break;
case 5 :
if(varHand.rdinfoCurrentSlide != (Number(myXML.captions.@eventParam) - 1)){
varHand.cpCmndGotoSlide = Number(myXML.captions.@eventParam) - 1;
varHand.rdcmndResume = 1;
break;
case 6 :
navigateToURL (new URLRequest(myXML.captions.@eventParam), "_blank");
break;
case 7 :
navigateToURL (new URLRequest("mailto:"+myXML.captions.@eventParam), "_blank");
break;
playedByButton = true;
function update ()
myXML = new XML(myData);
if (myWM == "Edit")
textFormatterMc.setData (myXML.textProperties);//strCaptivateXML:String
textFormatterMc.init ();
CaptionMc.setData (myXML.captions, textFormatterMc);
CaptionMc.setConfig (myConfig.styles);
CaptionMc.init ();
CaptionMc.visible = true;
textFormatterMc.visible = true;
var arr = [textFormatterMc.sizeSelectorMc];
initCursor(arr);
else
CaptionMc.visible = false;
textFormatterMc.visible = false;
if(mc != null){
removeAllChildren(mc);
}else{
mc = new MovieClip();
addChild (mc);
var xmlRef = myXML.captions;
var textMatrix:Matrix = new Matrix(xmlRef.text.@a, xmlRef.text.@b, xmlRef.text.@c, xmlRef.text.@d, xmlRef.text.@tx, xmlRef.text.@ty)
var txt:TextField = new TextField();
objName = txt;
txt.name = "txt";
txt.mouseEnabled = false;
txt.selectable = false;
txt.multiline = true;
txt.wordWrap = true;
mc.addChild (txt);
txt.text = xmlRef.text;
txt.mouseEnabled = false;
txt.width = Number(xmlRef.text.@width);
txt.height = Number(xmlRef.text.@height);
//txt.x = Number(xmlRef.text.@tx);
//txt.y = Number(xmlRef.text.@ty);
txt.transform.matrix = textMatrix;
var txtProp = myXML.textProperties;
var tf = new TextFormat(txtProp.font. @ face,txtProp.font. @ size,txtProp.color. @ textColor,getBool(txtProp.textDecoration. @ bold),getBool(txtProp.textDecoration. @ italic),getBool(txtProp.textDecoration. @ underline));
txt.setTextFormat (tf);
if (txtProp.color. @ highlightRequired == "true")
txt.background = true;
txt.backgroundColor = uint(txtProp.color. @ highlightColor);
txt.visible = getBool(xmlRef.text. @visible)
var mcCaption = new MovieClip();
var mcCaptionMatrix = new Matrix(xmlRef.@a, xmlRef.@b, xmlRef.@c, xmlRef.@d, xmlRef.@tx, xmlRef.@ty);
var ClassName:Class = getDefinitionByName(xmlRef.@style) as Class;
var objHolder = new ClassName();
objHolder.buttonMode = true;
objHolder.addEventListener (MouseEvent.CLICK, fnHandleButtonEvent);
mcCaption.addChild (objHolder);
objHolder.transform.matrix = mcCaptionMatrix;
if (SimpleButton(objHolder.getChildByName("btn")) != null && xmlRef.@bgSelected == "true")
var tempColorStr = [email protected]();
if (tempColorStr.length > 0)
var objColorTransform = new ColorTransform();
objColorTransform.color = uint(tempColorStr);
SimpleButton(objHolder.getChildByName("btn")).transform.colorTransform = objColorTransform;
if (MovieClip(objHolder.getChildByName("mcBorder")) != null && xmlRef.@borderSelected == "true")
var borderColorStr = [email protected]();
if (borderColorStr.length > 0)
var borderColorTransform = new ColorTransform();
borderColorTransform.color = uint(borderColorStr);
MovieClip(objHolder.getChildByName("mcBorder")).transform.colorTransform = borderColorTransform;
mcCaption.addChild (objHolder);
mc.addChildAt (mcCaption, 0);
var mcIconMatrix = new Matrix(xmlRef.image.@a, xmlRef.image.@b, xmlRef.image.@c, xmlRef.image.@d, xmlRef.image.@tx, xmlRef.image.@ty)
var mcIcon = new Loader();//IconMovie();
mcIcon.contentLoaderInfo.addEventListener (Event.COMPLETE, imageLoaded);
if (xmlRef.image != ""){
mcIcon.load (new URLRequest(String(xmlRef.image)));
mcIcon.name = "mcIcon";
mcIcon.transform.matrix = mcIconMatrix;
mcIcon.visible = getBool(xmlRef.image. @visible)
mc.addChild (mcIcon);
var cursor;
var otherCursor;
var downState = false;
function initCursor(arr:Array){
cursor = new Cursor();
cursor.mouseEnabled = false
cursor.visible = false;
addChild(cursor);
otherCursor = new StretchCursor();
otherCursor.mouseEnabled = false
otherCursor.visible = false;
addChild(otherCursor);
for(var i=0 ; i< arr.length; i++){
arr[i].addEventListener(MouseEvent.ROLL_OVER, showCursor)
arr[i].addEventListener(MouseEvent.ROLL_OUT, hideCursor)
arr[i].addEventListener(MouseEvent.MOUSE_DOWN, showOtherCursor)
arr[i].addEventListener(MouseEvent.MOUSE_UP, hideOtherCursor)
this.addEventListener(MouseEvent.MOUSE_UP, hideOtherCursor);
this.addEventListener(MouseEvent.ROLL_OUT, hideOtherCursor);
function showCursor(e:MouseEvent){
var txt = MovieClip(e.target).sizeTxt;
if(!downState && txt.type == "dynamic"){
cursor.visible = true;
cursor.startDrag(true)
Mouse.hide();
function hideCursor(e:MouseEvent){
if(!downState){
cursor.stopDrag()
cursor.visible = false;
Mouse.show();
function showOtherCursor(e:MouseEvent){
var txt = MovieClip(e.currentTarget).sizeTxt;
if(txt.type == "dynamic"){
hideCursor(e);
downState = true
otherCursor.startDrag(true)
otherCursor.visible = true;
Mouse.hide();
function hideOtherCursor(e:MouseEvent){
downState = false;
otherCursor.stopDrag()
otherCursor.visible = false;
Mouse.show();
function removeAllChildren(mcRef:MovieClip){
for(var i=(mcRef.numChildren-1); i>=0; i--){
mcRef.removeChildAt(i);
function imageLoaded (e:Event)
var mc = e.target.content;
mc.width = Number(myXML.captions.image. @ width);
mc.height = Number(myXML.captions.image. @ height);
function getBool (str:String):Boolean
var ret:Boolean;
if (str == "true")
ret = true;
else
ret = false;
return ret;
function getModifiedXML ():String
return myXML.toString();
//to register enter frame function
this.addEventListener (Event.ENTER_FRAME,onEnterEveryFrame);
//Captivate App will not recognize a Static Widget unless this function is implemented and returns true
function isStatic ():Boolean
return true;//denotes that this is indeed a Captivate Interactive Learning Object
//a object needs to be created and values filled in . This is taken by captivate and stored as //xml string. This is the mean to pass values between captivate and widget swf.
function getInspectorParameters ():Object
//dev//Apply
//set the data in _parameters fields. This is called by captivate to get the values of widget swf
var _parameters: Object = new Object();
_parameters.dataXML = getModifiedXML();
return _parameters;
// whenever widget is inserted the widget swf is passed on the parameters stored inside captivate so that it is drawn in updated stage.
function setInspectorParameters (inParam:Object):void
//Dev//on Double click //edit window
myData = inParam.dataXML;
myWM = widgetMode;
update ();
//is called whenever widget needs to be drawn as per the changed
//parameters like OK to widget dialog and stage swf is updated with the current values.
function setParameters (inParam:Object):void
if (inParam.dataXML != null)
//redraw the widget as parameters has changed
//dev//OK button
myData = inParam.dataXML;
myWM = widgetMode;
update ();
//this function is called to set the variable on player
function cpSetValue (variable:String, val):void
if (variable == 'movieHandle')
movieHandle = val;
varHand = movieHandle.getMovieProps().variablesHandle;
//using varHand the variables can be accessed for eg. varHand.rdcmndPause = 1;
if (variable == 'widgetMode')
widgetMode = val;
//dev//set mode
function getEditModeWidth ( ):int
return 411;// return required width of widget properties dialog here
function getEditModeHeight ( ):int
return 480;// return required height of widget properties dialog here
//Register all the functions with ExternalInterface
if (ExternalInterface.available == true)
ExternalInterface.addCallback ("isStatic",isStatic);
ExternalInterface.addCallback ("getInspectorParameters",getInspectorParameters);
ExternalInterface.addCallback ("setInspectorParameters",setInspectorParameters);
ExternalInterface.addCallback ("setParameters",setParameters);
ExternalInterface.addCallback ("cpSetValue", cpSetValue);
ExternalInterface.addCallback ( "getEditModeWidth", getEditModeWidth);
ExternalInterface.addCallback ( "getEditModeHeight", getEditModeHeight);
//take care of optimised drawing inside this function. Check the widgetMode , widgetParams and draw accordingly
function onEnterEveryFrame (aevent:Event):void
var wm:String = widgetMode;//this variable will be provided by Captivate App or Captivate Movie
if (wm == null)
wm = widgetMode;
if (wm == null)
wm = 'Stage';
this.removeEventListener (Event.ENTER_FRAME,onEnterEveryFrame);
else if (wm == 'Edit')
//Property inspection inside Captivate app
myWM = wm;
update ();
this.removeEventListener (Event.ENTER_FRAME,onEnterEveryFrame);
else if (wm == 'Preview')
//The code here is used for previewing the widget in the preview window of widget panel
myWM = wm;
update ();
this.removeEventListener (Event.ENTER_FRAME,onEnterEveryFrame);
else
//On stage scrubbing/live preview inside Captivate app (OR) at runtime inside Captivate movie.
if(!checkUpdatedXML){
if (movieHandle != null)
widgetParam = movieHandle.widgetParams();
if (widgetParam != "")
var myXml:XML = new XML(widgetParam);
myData = myXml.property.(@id == "dataXML").string;
wm = "Runtime";
myWM = wm;
update ();
checkUpdatedXML = true
if (movieHandle != null)
if (movieHandle.isWidgetEnabled() == true)
if(addednoskipframe == false)
var slidestart = movieHandle.getSlideProps().startFrame;
var slideend = movieHandle.getSlideProps().endFrame;
pauseFrame = Math.ceil((slidestart + slideend)/2);
var SlidePauseFrame = pauseFrame - slidestart + 1;
movieHandle.getSlideProps().slideHandle.AddNoSkipFrame(SlidePauseFrame);
addednoskipframe = true;
if(movieHandle.isWidgetEnabled() && varHand.rdinfoCurrentFrame == pauseFrame && playedByButton == false)
varHand.rdcmndPause = 1;
this.removeEventListener (Event.ENTER_FRAME,onEnterEveryFrame);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;Hi again,
I just added a virtual keyboard widget, so that you can enter text even in Fullscreen Mode
http://www.m-gd.com/virtual-keyboard-captivate-widget-en/ -
Hi
I am new here and would like advice.
I am designer mainly animation and effects. I do not like programing but Flash does force it on you in some cases of interactivity like buttons, sounds and movie clips. I come from AS1 and never worked with AS2. I would like to jump straight into AS3 but I am confused where to start.
I would like to work on how to do the following using AS3 language;
Introduction to AS3 language and new meanings
start and stop sound
loop sound
interaction between movie clips
contact form
mouse effects, interactivity
Text effects
Preloader and advanced preloaders
loading swf, unloading them and targeting specific areas in those swf
So, you can see most of my list is for visual experience and interaction rather then an application. Those are the areas I am mostly interested in with AS3
Thanks.Your best bet might be to start by reading the Flash help documentation. I don't know what your chances are of finding an AS1 to AS3 differences listing, but in the help documents if you search on Migration you should get a search result that presents a table listing what changes from AS2, alot of which would also involve AS1 coding. I believe there may be some tutorial-type lessons in the help documents to get you started as well.
You may want to consider signing up at lynda.com for a month or so and make use of the various tutorials there. Aloso, for any specific topics you'd like to pursue a Google search using "AS3 topic tutorial" will very often get you useful results. There are a number of tutorial sites, one of which that has a variety of popular topics is gotoandlearn.com.
If you're the learn by doing type, then if you run into something that won't work you can always ask questions here, presenting the code that isn't working, and someone will sually help resolve the problem... the more info you offer and the more it appears you've actually tried something, the more likely someone will help. Those who come with no more than a "show me how" request for something involving more than a few lines of coding are more apt to leave empty-handed or get a Googl search suggestion.
I have always taken a self-learning approach with Flash, and have found that between the search engines (Google, these days) and the Flash help doocumentation I can find answers to anything I've needed to solve.
Other folks will probably have additional suggestions on resources to offer. -
How to restructure this code into separate classes?
I have C# code that initializes a force feedback joystick and plays an effect file(vibrates the joystick). I have turn the console application into library
code to make a dll so that I can use it in LabVIEW.
Right now all the code is written under one class, so went I put the dll in LabVIEW I can only select that one class. labVIEW guy told me that I need to
restructure my C# code into separate classes. Each class that I want to access from LabVIEW needs to marked as public. Then I can instantiate that class in LabVIEW using a constructor, and call methods and set properties of that class using invoke nodes and
property nodes.
How can I do this correctly? I tried changing some of them into classes but doesn't work. Can you guys take a look at the code to see if it is even possible
to break the code into separate classes? Also, if it is possible can you guide me, suggest some reading/video, etc.
Thank you
using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using Microsoft.DirectX.DirectInput;
namespace JoystickProject
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
private System.Windows.Forms.Label label1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
private Device device = null;
private bool running = true;
private ArrayList effectList = new ArrayList();
private string joyState = "";
public bool InitializeInput()
// Create our joystick device
foreach(DeviceInstance di in Manager.GetDevices(DeviceClass.GameControl,
EnumDevicesFlags.AttachedOnly | EnumDevicesFlags.ForceFeeback))
// Pick the first attached joystick we see
device = new Device(di.InstanceGuid);
break;
if (device == null) // We couldn't find a joystick
return false;
device.SetDataFormat(DeviceDataFormat.Joystick);
device.SetCooperativeLevel(this, CooperativeLevelFlags.Exclusive | CooperativeLevelFlags.Background);
device.Properties.AxisModeAbsolute = true;
device.Properties.AutoCenter = false;
device.Acquire();
// Enumerate any axes
foreach(DeviceObjectInstance doi in device.Objects)
if ((doi.ObjectId & (int)DeviceObjectTypeFlags.Axis) != 0)
// We found an axis, set the range to a max of 10,000
device.Properties.SetRange(ParameterHow.ById,
doi.ObjectId, new InputRange(-5000, 5000));
// Load our feedback file
EffectList effects = null;
effects = device.GetEffects(@"C:\MyEffectFile.ffe",
FileEffectsFlags.ModifyIfNeeded);
foreach(FileEffect fe in effects)
EffectObject myEffect = new EffectObject(fe.EffectGuid, fe.EffectStruct,
device);
myEffect.Download();
effectList.Add(myEffect);
while(running)
UpdateInputState();
Application.DoEvents();
return true;
public void PlayEffects()
// See if our effects are playing.
foreach(EffectObject myEffect in effectList)
//if (button0pressed == true)
//MessageBox.Show("Button Pressed.");
// myEffect.Start(1, EffectStartFlags.NoDownload);
if (!myEffect.EffectStatus.Playing)
// If not, play them
myEffect.Start(1, EffectStartFlags.NoDownload);
//button0pressed = true;
protected override void OnClosed(EventArgs e)
running = false;
private void UpdateInputState()
PlayEffects();
// Check the joystick state
JoystickState state = device.CurrentJoystickState;
device.Poll();
joyState = "Using JoystickState: \r\n";
joyState += device.Properties.ProductName;
joyState += "\n";
joyState += device.ForceFeedbackState;
joyState += "\n";
joyState += state.ToString();
byte[] buttons = state.GetButtons();
for(int i = 0; i < buttons.Length; i++)
joyState += string.Format("Button {0} {1}\r\n", i, buttons[i] != 0 ? "Pressed" : "Not Pressed");
label1.Text = joyState;
//if(buttons[0] != 0)
//button0pressed = true;
public Form1()
// Required for Windows Form Designer support
InitializeComponent();
// TODO: Add any constructor code after InitializeComponent call
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
if( disposing )
if (components != null)
components.Dispose();
base.Dispose( disposing );
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
public void InitializeComponent()
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
// label1
this.label1.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
this.label1.Location = new System.Drawing.Point(8, 8);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(272, 488);
this.label1.TabIndex = 0;
// Form1
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.BackColor = System.Drawing.SystemColors.ControlText;
this.ClientSize = new System.Drawing.Size(288, 502);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.label1});
this.Name = "Form1";
this.Text = "Joystick Stuff";
this.ResumeLayout(false);
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
using (Form1 frm = new Form1())
frm.Show();
if (!frm.InitializeInput())
MessageBox.Show("Couldn't find a joystick.");Imho he means the following.
Your class has performs two tasks:
Controlling the joystick.
Managing the joystick with a form.
So I would recommend, that you separate the WinForm from the joystick code. E.g.
namespace JoystickCtlLib
public class JoystickControl
private Device device = null;
private bool running = true;
private ArrayList effectList = new ArrayList();
private string joyState = "";
public string State { get { return this.joyState; } }
public bool InitializeInput() { return true; }
public void PlayEffects() { }
private void UpdateInputState() { }
So that your joystick class does not reference or uses any winform or button.
btw, there is a thing which is more important than that: Your polling the device in the main thread of your application. This will block your main application. Imho this should be a job for a thread like background worker. -
HOW TO MAKE MY JAVA APPLICATION CODE INTO A EXE?
I JUST FINISH WRITING A JAVA APPICATION code USING JCreator.
there is no error in the program.
Can someone provide me the steps to change it into a exe so that i can use the application in any computer. THANK YOU!You could use Google. I know, it means you need to do some research yourself. But an exe will only work on a Windows platform. Try looking for a tutorial on jar files instead.
-
Migrate existing code of AS3 to AS2 - URLRequest, URLLoader
Hi,
I have written code to read an XML file by using URLRequest and URLLoader in ActionScript 3.0. Code is pasted below. This runs well in AS3. Problem I am facing is because I wrote this in AS3, I am not able to use the DateChooser component in another part of the flash module because it seems like DateChooser component is not supported in AS3. So I want to migrate my below AS3 code back to AS2.
**** Code in AS3 (I need help in writing equivalent code in AS2) :-
var xmlText:XML ;
var xmlReq:URLRequest = new URLRequest("myFile.xml");
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(xmlReq);
xmlLoader.addEventListener(Event.COMPLETE,xmlLoaded);
function xmlLoaded(event:Event):void
xmlText = new XML(xmlLoader.data);
info_txt.htmlText = xmlText.someTag ;
**** I cannot use the above as is because, when I change the publish settings from AS3 to AS2, I get following errors -
The class or interface 'URLRequest' could not be loaded.
The class or interface 'URLLoader' could not be loaded.
The class or interface 'Event' could not be loaded.
Same works well in AS3. What should I do to make this work in AS2 or can anyone direct me in writing an equivalent in AS2.
Please assist.
Thanks in advance.
MGparsing is done using the xmlnode methods and properties. how you parse an xml file (in as2) depends on its structure. but generally, you use firstChild, nextSibling, childNodes and nodeValue in the appropriate sequence to extact data. the flash help files have sample code. for tutorials, check google.
if you're trying to load a cross-domain xml file, you'll have a cross-domain security issue to deal with. -
Loading AS2 mc's into AS3 movies
Hi. Using the following code to import AS2 mcs into AS3.
var contenedor = new Loader();
contenedor.load(new URLRequest("animal_catch2.swf"));
addChild(contenedor);
contenedor.x = 100
contenedor.y=0
BUT doesn't work too well. Games don't work but and the image is displaced. Would appreciate any help.
Thanks in advance.Sorry, excuse me. The displacement was becuase I cut and pasted the and I've just seen x = 100.
Anyway, the game still doesn't work.
Also, even if mcs are imprted and have different sizes than the container, can't they fill the container anyway - with fullscreen or something. -
As2 code to As3 conversion please
Hey, could someone help me converting the following code to AS3. Thanks for any help..
id=_root.id;
if(this._y<>_root.txk){
this._y=_root.txk;
_root.txk+=60;
this._x=_root.txx;
textyazı="";
onEnterFrame=function(){
this._name=namet.text;
if(_root.txk==360){
_root.txx+=60;
_root.txk=60;
this.onPress=function(){
if(_root["t"+namet.text].txtn.text<>namet.text){
_root.attachMovie("txt_dd","t"+namet.text,_root.derinlik);
_root["t"+namet.text]._x=100;
_root["t"+namet.text]._y=100;
_root["t"+namet.text].txtyname.text=namet.text;
_root["t"+namet.text].txtn.text=namet.text;
_root["t"+namet.text].txtyazılar.text=textyazı;
_root.derinlik++;
txtac = SharedObject.getLocal(id);
setInterval(function(){
if(txtac.data.namet<>"" && txtac.data.id>0){
namet.text=txtac.data.namet;
textyazı=txtac.data.textyazı;
id=txtac.data.id;
}else{
namet.text=_name;
if(namet.text=="undefined"){
namet.text=_name;
if(textyazı==undefined){
textyazı="";
},50);
this.useHandCursor=false;1.download flashdevelop (Flash has bad code hinting and error descriptions)
2.start with deleting underscores in _root,_x,_y
3.work your way up from there
4.Lines like:
this.onPress=function
are probably attached directly to a button or MovieClip: This is not possible in as3 anymore. You have to take the code out of the button and put it on the timeline of the button, if it is a MovieClip.
5.The Event Model has changed considerably:
onEnterFrame=function(){
// do stuff here
is now
addEventListener(ENTER_FRAME, enterFrameHandler);
function enterFrameHandler(e:Event):void{
//do stuff here -
In general, how do I put code into a loop?
I have access to a procedure that takes a parameter and spits out a single result. I need to figure out how to use that procedure and spit out many results. This example should clear things up.
VARIABLE enum NUMBER;
EXEC :enum := 7566;
-- my procedure. Cannot change code here.
-- Prints out a formatted name and job, given an empno stored in :enum
SELECT ename || ' (' || job || ')' AS "myrow"
FROM scott.emp
WHERE empno = :enum;
-- end of my procedureHere, I can't change anything from the SELECT to the semi-colon. Now I would like to put this into a PL/SQL LOOP, but I can't figure it out. Let's say I want to print out all of the employees with a job of manager. Somehow I will need enum to take the value of the current iteration from within the loop.
something like this:
BEGIN
-- first get the list of employees
CURSOR e_cur IS
SELECT empno
FROM scott.emp
WHERE job="MANAGER';
END;
BEGIN
FOR r_cur IN e_cur LOOP
:enum = r_cur.empno
-- my procedure. Cannot change code here.
-- Prints out a formatted name and job, given an empno stored in :enum
SELECT ename || ' (' || job || ')' AS "myrow"
FROM scott.emp
WHERE empno = :enum;
-- end of my procedure
END LOOP;
END;
{code}
of course, this code does not work, and I don't know what else to try.
Thanks in advance for any help!
SkipOh boy, do I owe you guys an apology. Absolutely no excuse, but I screwed up big time yesterday. I am working on a couple of projects and got some wires crossed. I would like to start over. Forget everything I asked yesterday. I wouldn't be surprised if no one answered, but I could still use some help. I am embarrassed because I am usually pretty good at these things, and again, I humbly apologize.
Still with me? Here we go:
I have a SQL script that is quite long. It has 25 select statements, 4 unions, 7 minus'es, lots of joins, sub-queries, etc. The script expects two bind variables to be set before running. The code was written to execute once (like a report). But the code does exactly what I need, but I need to run it on a much larger set. So I would like to wrap it in a loop. Now, I am pretty good at other programming languages (I know, hard to believe given yesterday's exchange). If I have some java code that I want to wrap in a FOR-NEXT loop, often all I need to do is put one line at the top of the code and one line at the bottom. Then I make sure the variables that need t be updated through each iteration are properly updated. Bada-bing, bada-boom, it's done.
It doesn't seem as easy here. I know that I will have to convert my SQL script to PL/SQL. But I am wrestling with the DECLAREs, BEGINs and LOOPs, and changes to the existing code to ensure the bind variables are updated each iteration. I have tried all of what I thought would be the simple solutions as I described with my java example above, but it has not worked. So, as my subject line indicates, I was wondering if there was a general methodology to LOOP-ifying existing code. I know this is a pretty nebulous question, and I probably blew it yesterday, but I really do need some help. Even if it is "read this and that website/book/etc". That's really it. sigh All that stuff yesterday about "unmodifiable code"--forget about that. I should never have said that. Anything goes.
Maybe there isn't a simple solution here. SQL isn't Java. And that's OK. At least then I will know I will need to look for a different solution or I will have to get a LOT smarter with SQL and PL/SQL. I thought my super-simple example yesterday was a good enough substitute for what I am faced with, but maybe that isn't a good assumption. -
Fluid grid for Wordpress: insert PHP code into DW or DW code into Wordpress?
This may be a stupid question but it's a dilemma for me. Here's the problem. I want to create a mobile first, fluid grid Wordpress website in Dreamweaver CS6 based on an existing Wordpress theme. I can see two ways of doing that:
1) Create a fluid grid layout in DW, then insert the Wordpress PHP code into the right places in DW
Pro: the fluid grid layout is set up by DW and therefore can be easily edited with DW (I imagine)
Con: It is beyond my coding skills to make a fully functional WP template
2) Take an existing responsive Wordpress template with media queries and edit that in Dreamweaver
Pro: I start with a fully functional WP template and only have to make changes (mostly in CSS) to customise it
Con: When I start with an existing template (like Skeleton) I run into trouble using DW
For example: I click a navigation button to get at the CSS but it's not clear to me from DW's interface in which media query I have to make changes. I did a tutorial on creating a fluid grid layout with DW so I can do that. But DW doesn't work the same way with an existing WP template like Skeleton. I searched the web but all I can find is help on creating a fluid layout with DW, not editing an existing one.
By the way, I am experienced with HTML/CSS but not PHP and I have a local Wordpress server running on my Mac so I can work in Dreamweaver's Live View.
The problem may be that I am only just starting with responsive web design and need some more experience with media queries, css rules and DW CS6. Could anyone comment on this problem or point me towards more information on the subject?
TIA!You can certainly use DW to customize a 3rd party WP Theme. However, you must be throughly familliar with how WordPress Themes work and have a good working knowledge of HTML, CSS and PHP code. Design View will not be much help to you.
WP Themes are a sum of their various parts: header.php, footer,php, sidebar.php, page.php, index.php, archive.php, etc... The web server parses code from the various parts and creates whole pages on the fly. Once WP is deployed on your server, you cannot use DW to edit content. You must use the WP Admin Panel (CMS) to manage content, Themes, plugins and backup data.
For simple static sites, the FluidGrid Layout feature in DW is a nice starting point. But these layouts have definite limitations which, IMO would not be a good fit with WordPress.
Nancy O.
Maybe you are looking for
-
2d Direct draw, and how to find out if the application is a java apps
I am running a banner application that was written in java. And in some instances, we are seeing the banner flicker every 5 seconds or 10 seconds. The banner application is written by some other government branch and on their documentation they say t
-
The question is: Can I use it back in the UK (I dont mind paying to get it unlocked) and use it in India and SE Asia as I will be travelling for six months from January? Thanks!
-
HT4623 i forgot my security questions for my apple id how can i find them out?
i forgot my security questions for my apple id how can i find them out?
-
i have a iphone 4s last 6 month ios 5.1.1 and i am faceing a problem with facetime application and i do not have facetime in my phone yet so please know me how to unlock face time
-
Does Running a Zeros Erase + Clean Install of SL Fix Glitchy Bugs ?
Hi Guys & Gals... I'm just asking the questions as I know from previous and past experience a clean install can be a very dangerous this to do.... I have lost data before.... doing this procedure.... but I must say... it nearly always delivers a fix