Search Results

Search found 15144 results on 606 pages for 'fixed width'.

Page 309/606 | < Previous Page | 305 306 307 308 309 310 311 312 313 314 315 316  | Next Page >

  • .NET OCRing an Image

    - by Kirschstein
    I'm trying to use MODI to OCR a window's program. It works fine for screenshots I grab programmatically using win32 interop like this: public string SaveScreenShotToFile() { RECT rc; GetWindowRect(_hWnd, out rc); int width = rc.right - rc.left; int height = rc.bottom - rc.top; Bitmap bmp = new Bitmap(width, height); Graphics gfxBmp = Graphics.FromImage(bmp); IntPtr hdcBitmap = gfxBmp.GetHdc(); PrintWindow(_hWnd, hdcBitmap, 0); gfxBmp.ReleaseHdc(hdcBitmap); gfxBmp.Dispose(); string fileName = @"c:\temp\screenshots\" + Guid.NewGuid().ToString() + ".bmp"; bmp.Save(fileName); return fileName; } This image is then saved to a file and ran through MODI like this: private string GetTextFromImage(string fileName) { MODI.Document doc = new MODI.DocumentClass(); doc.Create(fileName); doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true); MODI.Image img = (MODI.Image)doc.Images[0]; MODI.Layout layout = img.Layout; StringBuilder sb = new StringBuilder(); for (int i = 0; i < layout.Words.Count; i++) { MODI.Word word = (MODI.Word)layout.Words[i]; sb.Append(word.Text); sb.Append(" "); } if (sb.Length > 1) sb.Length--; return sb.ToString(); } This part works fine, however, I don't want to OCR the entire screenshot, just portions of it. I try cropping the image programmatically like this: private string SaveToCroppedImage(Bitmap original) { Bitmap result = original.Clone(new Rectangle(0, 0, 250, 250), original.PixelFormat); var fileName = "c:\\" + Guid.NewGuid().ToString() + ".bmp"; result.Save(fileName, original.RawFormat); return fileName; } and then OCRing this smaller image, however MODI throws an exception; 'OCR running error', the error code is -959967087. Why can MODI handle the original bitmap but not the smaller version taken from it?

    Read the article

  • perl equivalent to awk /text/,/END/

    - by kSiR
    I am looking to replace a nasty shell script that uses awk to trim down some html, problem is I cannot find anything in perl that does the aforementioned function awk '/<TABLE\ WIDTH\=\"100\%\" BORDER\=1\ CELLSPACING\=0><TR\ class\=\"tabhead\"><TH>State<\/TH>/,/END/' How can I do this in perl?

    Read the article

  • [How to] Checkbox :: Select one at a time

    - by neo-nant
    This is the code section from inno setup.My intention is to make two Checkbox where at a time one is being selected. But this code return error when first checkbox is clicked. [code] procedure CheckBoxOnClick(Sender: TObject); var Box2,CheckBox: TNewCheckBox; begin if CheckBox.Checked then ///error:"Could not call proc" [sud it be global if then how to or what to change?] BEGIN CheckBox.State := cbUnchecked; Box2.State := cbChecked; END else BEGIN CheckBox.State := cbChecked; Box2.State := cbUnchecked; END; end; procedure Box2OnClick(Sender: TObject); var Box2,CheckBox: TNewCheckBox; begin if Box2.Checked then ///error:same BEGIN CheckBox.State := cbChecked; Box2.State := cbUnchecked; END else BEGIN CheckBox.State := cbUnchecked; Box2.State := cbChecked; END; end; procedure CreateTheWizardPages; var Page: TWizardPage; Box2,CheckBox: TNewCheckBox; begin { TButton and others } Page := CreateCustomPage(wpWelcome, '', ''); CheckBox := TNewCheckBox.Create(Page); CheckBox.Top :=ScaleY(8)+ScaleX(50); CheckBox.Width := Page.SurfaceWidth; CheckBox.Height := ScaleY(17); CheckBox.Caption := 'Do this'; CheckBox.Checked := True; CheckBox.OnClick := @CheckBoxOnClick; CheckBox.Parent := Page.Surface; Box2 := TNewCheckBox.Create(Page); Box2.Top :=ScaleY(8)+ScaleX(70); Box2.Width := Page.SurfaceWidth; Box2.Height := ScaleY(17); Box2.Caption := 'No,Thanks.'; Box2.Checked := False; Box2.OnClick := @Box2OnClick; Box2.Parent := Page.Surface; end; procedure InitializeWizard(); //var begin { Custom wizard pages } CreateTheWizardPages; end; Please tell me where to change..

    Read the article

  • S3200SH error 5220 every boot (CMOS/NVRAM Cleared by jumper)

    - by TechAUmNu
    I have a S3200SH Intel server board with a Intel Xeon 3220 Quad Core. Every time I boot it, I get error 5220 (CMOS/NVRAM Cleared by jumper). The jumper is not installed and I have replaced the lithium battery. The board overheated once, although still seems to work fine apart from this error. Also if I leave the board sitting in the bios for a while it sometimes randomly turns off, with all 4 diagnostic LED's red. I have moved the 2GB DIMM to another slot, which seems to have fixed this problem. Any ideas would be greatly appreciated.

    Read the article

  • How to resize the design section of an ActiveReports Designer control?

    - by Hamid
    Hi all. I'm developing an application (by C#) that has a part that enables the final user to design his self report. It has an option to design automatically ActiveReports controls from a passed data source and shows it, but I can't resize the designe section's ruler to fit it's width. How can I resize the design section of the designer control programmatically?

    Read the article

  • How to use MVC Contrib Grid to make better table?

    - by DucDigital
    There are actually 2 question i want to cover in this topic. 1) Is there anyway to put table footer into a MVCContrib Grid? (tf) 2) Im writing a small code to display result image into a grid: ----------------------------------- | I || I || I || I || I || I || I | ----------------------------------- | I || I || I || I || I || I || I | ----------------------------------- | I || I || I || I || I || I || I | ----------------------------------- | I || I || I || I || I || I || I | ----------------------------------- I represent Image, this will make as a table to maintain equal width.. But is there anyway of doing this with MVCCOntrib particularly or Asp.net MVC View? Thank you

    Read the article

  • Adding and using a Domain Admin during OSD, in MDT

    - by user195296
    So during my Windows 7 OSD. Going by Company Politics I'm suppose to A: Disabled the standardlized Administrator (Done, can do that in task sequence) B: Create a new Administrator called 'ITadmin' and set a fixed password C: Join a Domain (Done that aswell in the Task Sequence) D: Use a Domain Admin to install programs that would otherwise give problems if attempted to install through Local Admin, like Dynamics AX As written I join the computer to the Domain During the OSD, and as Result have the correct Domain Admins added as Administrators through GPO, but I don't know how to use them. I'm looking at CustomSettings.ini in the MDT pack and thinking its gotta be possible to do it from here? or from the unattend.xml in pseudo here is what I wanna Add: AddLocalAdmin: ITadmin Password: 1234 UseThisAccountToInstallOSD: Domain\Install_User Password: 1234 Any help appreciated, can't seem to google my way out of this one.

    Read the article

  • Quartz 2D: draw from a CGContext to another CGContext

    - by alexey
    I have a CGBitmapContext (bitmapContext) and I would like to draw some rectangle part (rect) of it to the current CGContext (context). Right now I do that way: CGContextRef context = UIGraphicsGetCurrentContext(); CGImageRef cgImage = CGBitmapContextCreateImage(bitmapContext); CGContextClipToRect(context, rect); CGContextDrawImage(context, CGRectMake(0, 0, width, height), cgImage); CGImageRelease(cgImage); Is it optimal? What is the best way to do it?

    Read the article

  • quick question about memory management in AS3

    - by TheDarkIn1978
    the following method will be called many times. i'm concerned the continuous call for new rectangles will add potentially unnecessary memory consumption, or is the memory used to produce the previous rectangle released/overwritten to accommodate another rectangle since it is assigned to the same instance variable? private function onDrag(evt:MouseEvent):void { this.startDrag(false, dragBounds()); } private function dragBounds():Rectangle { var stagebounds = new Rectangle(0 - swatchRect.x, 0 - swatchRect.y, stage.stageWidth - swatchRect.width, stage.stageHeight - swatchRect.height); return stagebounds; }

    Read the article

  • wxPython ListCtrl Column Ignores Specific Fields

    - by g.d.d.c
    I'm rewriting this post to clarify some things and provide a full class definition for the Virtual List I'm having trouble with. The class is defined like so: from wx import ListCtrl, LC_REPORT, LC_VIRTUAL, LC_HRULES, LC_VRULES, \ EVT_LIST_COL_CLICK, EVT_LIST_CACHE_HINT, EVT_LIST_COL_RIGHT_CLICK, \ ImageList, IMAGE_LIST_SMALL, Menu, MenuItem, NewId, ITEM_CHECK, Frame, \ EVT_MENU class VirtualList(ListCtrl): def __init__(self, parent, datasource = None, style = LC_REPORT | LC_VIRTUAL | LC_HRULES | LC_VRULES): ListCtrl.__init__(self, parent, style = style) self.columns = [] self.il = ImageList(16, 16) self.Bind(EVT_LIST_CACHE_HINT, self.CheckCache) self.Bind(EVT_LIST_COL_CLICK, self.OnSort) if datasource is not None: self.datasource = datasource self.Bind(EVT_LIST_COL_RIGHT_CLICK, self.ShowAvailableColumns) self.datasource.list = self self.Populate() def SetDatasource(self, datasource): self.datasource = datasource def CheckCache(self, event): self.datasource.UpdateCache(event.GetCacheFrom(), event.GetCacheTo()) def OnGetItemText(self, item, col): return self.datasource.GetItem(item, self.columns[col]) def OnGetItemImage(self, item): return self.datasource.GetImg(item) def OnSort(self, event): self.datasource.SortByColumn(self.columns[event.Column]) self.Refresh() def UpdateCount(self): self.SetItemCount(self.datasource.GetCount()) def Populate(self): self.UpdateCount() self.datasource.MakeImgList(self.il) self.SetImageList(self.il, IMAGE_LIST_SMALL) self.ShowColumns() def ShowColumns(self): for col, (text, visible) in enumerate(self.datasource.GetColumnHeaders()): if visible: self.columns.append(text) self.InsertColumn(col, text, width = -2) def Filter(self, filter): self.datasource.Filter(filter) self.UpdateCount() self.Refresh() def ShowAvailableColumns(self, evt): colMenu = Menu() self.id2item = {} for idx, (text, visible) in enumerate(self.datasource.columns): id = NewId() self.id2item[id] = (idx, visible, text) item = MenuItem(colMenu, id, text, kind = ITEM_CHECK) colMenu.AppendItem(item) EVT_MENU(colMenu, id, self.ColumnToggle) item.Check(visible) Frame(self, -1).PopupMenu(colMenu) colMenu.Destroy() def ColumnToggle(self, evt): toggled = self.id2item[evt.GetId()] if toggled[1]: idx = self.columns.index(toggled[2]) self.datasource.columns[toggled[0]] = (self.datasource.columns[toggled[0]][0], False) self.DeleteColumn(idx) self.columns.pop(idx) else: self.datasource.columns[toggled[0]] = (self.datasource.columns[toggled[0]][0], True) idx = self.datasource.GetColumnHeaders().index((toggled[2], True)) self.columns.insert(idx, toggled[2]) self.InsertColumn(idx, toggled[2], width = -2) self.datasource.SaveColumns() I've added functions that allow for Column Toggling which facilitate my description of the issue I'm encountering. On the 3rd instance of this class in my application the Column at Index 1 will not display String values. Integer values are displayed properly. If I add print statements to my OnGetItemText method the values show up in my console properly. This behavior is not present in the first two instances of this class, and my class does not contain any type checking code with respect to value display. It was suggested by someone on the wxPython users' group that I create a standalone sample that demonstrates this issue if I can. I'm working on that, but have not yet had time to create a sample that does not rely on database access. Any suggestions or advice would be most appreciated. I'm tearing my hair out on this one.

    Read the article

  • onblur and onfocus attributes for textbox created progrmatically in vb.net

    - by ferrer
    how do i put the onblur and onfocus attributes on a textbox created programatically? here's my code - td = New HtmlTableCell td.Style.Add("padding-bottom", "5px") Dim txtbox As New TextBox txtbox.Style.Add("width", "96%") txtbox.ID = "ename" td.Controls.Add(txtbox) tr.Cells.Add(td) td.Style.Add("padding-top", "5px") now i want to add onblur and onfocus. is there something like? -- txtbox.attributes.Add("onblur","Enter Name") txtbox.attributes.Add("onfocus","") i tried this, and doesn work. does anyone know how to do this?

    Read the article

  • Jquery Automatic Image Slider w/ CSS & jQuery

    - by Jacinto
    This is Automatic Image Slider w/ CSS & jQuery by Soh Tanaka I am trying to customize it to show .desc when the mouse hover overs the slider but it does not seem to work any help? //Set Default State of each portfolio piece $(".paging").show(); $(".paging a:first").addClass("active"); //Get size of images, how many there are, then determin the size of the image reel. var imageWidth = $(".window").width(); var imageSum = $(".image_reel ul.examples").size(); var imageReelWidth = imageWidth * imageSum; //Adjust the image reel to its new size $(".image_reel").css({'width' : imageReelWidth}); //Paging + Slider Function rotate = function(){ var triggerID = $active.attr("rel") - 1; //Get number of times to slide var image_reelPosition = triggerID * imageWidth; //Determines the distance the image reel needs to slide $(".paging a").removeClass('active'); //Remove all active class $active.addClass('active'); //Add active class (the $active is declared in the rotateSwitch function) //Slider Animation $(".image_reel").animate({ left: -image_reelPosition }, 500 ); }; //Rotation + Timing Event rotateSwitch = function(){ play = setInterval(function(){ //Set timer - this will repeat itself every 3 seconds $active = $('.paging a.active').next(); if ( $active.length === 0) { //If paging reaches the end... $active = $('.paging a:first'); //go back to first } rotate(); //Trigger the paging and slider function }, 7000); //Timer speed in milliseconds (3 seconds) }; rotateSwitch(); //Run function on launch //On Hover $(".image_reel").hover(function() { clearInterval(play); //Stop the rotation }, function() { rotateSwitch(); //Resume rotation }); //Hide the tooglebox when page load $(".desc").hide(); //slide up and down when hover over heading 2 $(".image_reel").hover(function(){ // slide toggle effect set to slow you can set it to fast too. $(this).next(".desc").slideToggle("slow"); return true; }); //On Click $(".paging a").click(function() { $active = $(this); //Activate the clicked paging //Reset Timer clearInterval(play); //Stop the rotation rotate(); //Trigger rotation immediately rotateSwitch(); // Resume rotation return false; //Prevent browser jump to link anchor });

    Read the article

  • NSXMLParser, Issue with ASCII Character Set

    - by Ansari
    Hi all <Feeds> <channel> <ctitle>YouTube</ctitle> <cdescription>YouTube - Recently added videos</cdescription> <items> <recentlyAdded> <item> <serverItemId>1</serverItemId> <title>Fan Video CARS</title> <author>mikar1</author> <guid isPermaLink='false'></guid> <link>http://www.youtube.com/watch?v=y7ssHOBFvGk&amp;feature=youtube_gdata</link> <pubDate></pubDate> <description> <descriptionTitle>Fan Video CARS</descriptionTitle> <descriptionText>THE REALSONG OF THIS VIDEOS IS REAL GONE, BUT FOR COPYRIGHTS RASONS.....YOUTUBE FORCE ME A CHANGE THE SONG :s Un pequeño video, de la pelicula Cars!</descriptionText> <added></added> <airDate></airDate> <duration></duration> <Views></Views> <ratings>4.340909</ratings> <From></From> </description> <thumbnail> <height>100</height> <width>100</width> <url>http://i.ytimg.com/vi/y7ssHOBFvGk/2.jpg</url> </thumbnail> </item> </recentlyAdded> </items> </channel> I am using NSXMLParser, and when it reaches the it blows up. It breaks the text to pieces "THE REALSONG OF THIS VIDEOS IS REAL GONE, BUT FOR COPYRIGHTS RASONS.....YOUTUBE FORCE ME A CHANGE THE SONG :s Un peque" And next should be "ño" but it just quit the parsing there and further tags are being handled. :( It always does with the ISO 8859 1 Character cames in ) Any quick idea ??? Thanks in Advance ..........

    Read the article

  • Papervision 3D: How can I force dimensions on a collada file

    - by imadethisthing
    Hey everyone, I'm working with Collada files and I need them to be a certain size. When instantiating them in pv3d you set the filename, materials, and scale. Scale works like a percentage, and there's no way to get the width, height, or depth of the DAE once in flash. I want to be able to specify the size of DAE in 3D space relative to other pv3d native geometry.

    Read the article

  • Error Galleria IE7

    - by John the horn
    I am using galleria for my site [Minavet.ro][1] [1]: http://minavet.ro and this error comes up is IE7 Line:219079877 Char:2 Error:Expected identifier, string number code:0 url:http://minavet.ro Thx for your time I have given the images width and height and now the error is Line:222704333 Char:2 Error:Expected identifier, string number code:0 url:http://minavet.ro

    Read the article

  • My External USB drive stops after reading some data

    - by user191542
    I had the external USB 3.0 western Digital My Book essential 3TB drive. I had loto of data on it. Suddenlt when i start copying data from it then after reading 20GB or so data then i get error that system can't read from the location. I have to turn the uSB power off , disconnect it and then again connect it. so i have to trnasfer the data in small chunks like 20Gb , 30GB etc. I have n ow transferred all the data but i want to know that is hard disk gone or it can be fixed or its something windows fault not HD fault

    Read the article

  • Validating button click event using JS from inside ascx nested inside updatepanel

    - by Viswa
    Hello I have a button inside an ascx inside an update panel inside aspx content page. When the button is clicked i want it to run a JS function that causes to show a panel. Here is my Code. <pre> <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ABC.ascx.cs" Inherits="App.ABC" %> <script type= "text/javascript" language="javascript"> var val1=0; var val2=0; function ShowPanel(val2) { if(val2 != 0) { switch(val2) { case 1 : document.getElementById('<%=pnl1.ClientID%>').style.visibility = 'visible'; break; } } return false; } </script> <asp:LinkButton ID="lbl1" runat="server" OnClick="return ShowPanel(1);">count</asp:LinkButton> I am not sue how to do this. Please help Update #1 - ABC.ascx is in updatepanel in the aspx page XYZ.aspx <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ABC.ascx.cs" Inherits="App.ABC" %> <script type= "text/javascript" language="javascript"> var val1=0; var val2=0; function ShowPanel(val2) { if (val2 != 0) { switch (val2) { case 1: document.getElementById("<%= this.pnl1.ClientID%>").style.display = "none"; break; } } return false; } </script> <div> <div style="text-align:center"> </div> <table style="width:100%; text-align:center; border-color:#99CCFF" border="3"> <tr style="text-align:left"> <td><asp:LinkButton ID="lbl1" runat="server" OnClientClick="return ShowPanel(1);">count</asp:LinkButton> </td> <td style="text-align:right"><asp:Button ID="btnHide1" runat="server" Text="hide" Height="18px" Width="32px"/> </td> </tr> <tr> <td colspan="2"><asp:Panel ID="pnl1" runat="server" Visible="false"> </asp:Panel> </td> </tr> </table> </div>

    Read the article

  • understanding logic of dijit css and styles

    - by Tom
    Hi, I am trying to use dijit.InlineEditBox. I have put the following code in my HTML, using the example in the dojo docs: <script type="text/javascript"> dojo.require("dijit.InlineEditBox"); dojo.require("dojo.parser"); dojo.require("dijit.form.TextBox"); function editableHeaderOnChange(id, arg){ alert("details changed with id " + id + " and arguments "+arg); } </script> ... <span id="myText" dojoType="dijit.InlineEditBox" onChange="editableHeaderOnChange(this.id,arguments[0])" autoSave="true" title="My Text">click to edit me</span> I am using tundra theme. It works, however it doesn't look so good. The widget has its own style, which doesn't fit my CSS. I used firebug to locate the source of the problem. The widget creates many nested div/span elements, each has it's own style (element style in firebug): <span id="dijit__InlineEditor_0" class="dijitReset dijitInline" style="margin: 0px; position: absolute; visibility: hidden; display: block; opacity: 0;" ...> <input type="text" autocomplete="off" class="dijit dijitReset dijitLeft dijitTextBox" id="dijit_form_TextBox_0" style="line-height: 20px; font-weight: 400; font-family: Trebuchet MS,Helvetica,Arial,Verdana; font-size: 14.5167px; font-style: normal; width: 100%;"> ...> </span></span> (showing only the relevant parts...) to get the visual that I want, which will not break to a newline, I need to change the width of dijit_form_TextBox_0** to 50%, and the positioning of dijit__InlineEditor_0 to display: inline**; or to change the positioning of everything (most of my layout is floated, so position: absolute doesn't fit) I cannot address those span elements in my css to change the properties, because the element.style has priority, of course. I don't understand the logic in this system... why is dijit generating the style directly inside the element? how can I change these properties? Thanks Tom

    Read the article

  • HTML/CSS set div to height of sibling

    - by Paul
    I have 2 div's contained in a third. One of the contained div's is floated left, the other floated right. I would like the 2 sibling div's to always be at the same height, but am having a problem with this. So far I am only viewing the page in Firefox, and figured I'd worry about any cross-browser issues after I get it working in at least one browser. Here is the markup: <div id="main-container" class="border clearfix"> <div id="left-div" class="border"> ... </div> <div id="right-div" class="border"> ... </div> </div> Here is the CSS: #main-container { position: relative; min-height: 500px; } #left-div { position: relative; float: left; width: 700px; min-height: inherit; } #right-div { position: relative; float: right; width: 248px; min-height: inherit; height: inherit; } .clearfix:after { content: " "; display: block; height: 0; clear: both; visibility: hidden; } .clearfix { display: inline-block; _height: 1%; clear: both; } .clearfix { display: block; clear: both; } .border { border: solid 1px #000; } If the content in the #left-div is longer than 500px, the #right-div does not expand to match. In an example I tried, Firefox said the computed style height of the #main-container was 804px, the computed style height of the #left-div was 800px, and the computed style height of the #right-div was 586.2px, as it had expanded to fit it's own content. I understand I might be going about this the wrong way, and if this is a duplicate questions then I apologize, but I wasn't quite sure what to search under.

    Read the article

  • Google Maps: marker icons are multi over same location, why?

    - by JakiT
    I'm using Google Maps and have the map set to height/width=100%. I noticed that when I resize the browser window, my map marker icons appear to redraw on top of the same location. Meaning, if I should only have 1 map marker icon on "987 Main St", when I resize the browser window - multiple map marker icons are being now draw on top of "987 Main St" that shouldn't be there. Any ideas why this is happening and how to prevent it? UPDATE: Link to actual code

    Read the article

  • Best security practice for small networks - wifi, lan,

    - by Grimlockz
    We regularly setup small networks for clients in different locations to allow them to work on different products now the question what should be the best security practice. Currently we have a wifi enabled with WPA2 and most laptops connect to this but some will connect to a cabled switch connecting to the router. We are thinking on what we should do to increase the security on our small networks - We do have have security on the laptops so you can share directly to the other persons drive by a simple Windows user account. Some suggestions are: We get a LAN switch with ACL control and mac filtering for the hard wired connections? We get acl working on the wifi via a good Cisco router? ipSec policies on all machines? IP filtering and fixed IPs? I suppose people are worried that anyone can plug into the switches and get the access to the network . Summary: Maintain a level of decent security that can be replicated easily to every setup that we do for clients

    Read the article

  • Android broswer crushes on Ajax calls, when viewport meta tag is defined

    - by Eran
    I am building a web app, which is intended to run on the Android browser. When I have a webpage that contains any kind of viewport meta tag, like this: <meta name="viewport" content="width=400"/> My webpage crushes on ajax calls. It happens when using the emulator, the actual browser on my nexus one, and on a droid (all running Android 2.1). Without the meta tag, the ajax calls run as they should. Any ideas?

    Read the article

  • Windows Server 2008 R2 slows internet speed

    - by Tone
    I just installed Windows Server 2008 R2 as my main file server on my home network. I've noticed that often times when I start my day my internet connection speed is slow. I'll go to Speakeasy speed test and it'll be at about 25% of its normal speed. When I restart my Server 2008 machine it increases back to normal. It will stay normal until Server 2008 has been running for a while. Any ideas? Edit: I had installed Collabnet Subversion within the past week which installs/sets up some other stuff for web access, I just uninstalled it. I'll report back tomorrow if that fixed my problem.

    Read the article

  • doubt regarding carrying data in custom events using actionscript

    - by user267530
    Hi I am working on actionscript to generate a SWF dynamically using JSON data coming from an HTTP request. I receive the data on creationComplete and try to generate a tree like structure. I don’t create the whole tree at the same time. I create 2 levels, level 1 and level 2. My goal is to attach custom events on the panels which represent tree nodes. When users click the panels, it dispatches custom events and try to generate the next level. So, it goes like this : On creation complete - get JSON- create top tow levels - click on level 2- create the level 2 and level 3 - click on level 3- create level 3 and 4. …and so on and so on. I am attaching my code with this email. Please take a look at it and if you have any hints on how you would do this if you need to paint a tree having total level number = “n” where( 0 import com.iwobanas.effects.*; import flash.events.MouseEvent; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; import flash.filters.GradientGlowFilter; import mx.controls.Alert; private var roundedMask:Sprite; private var panel:NewPanel; public var oldPanelIds:Array = new Array(); public var pages:Array = new Array();//cleanup public var delPages:Array = new Array(); public function DrawPlaybook(pos:Number,title:String,chld:Object):void { panel = new NewPanel(chld); panel.title = title; panel.name=title; panel.width = 100; panel.height = 80; panel.x=pos+5; panel.y=40; // Define a gradient glow. var gradientGlow:GradientGlowFilter = new GradientGlowFilter(); gradientGlow.distance = 0; gradientGlow.angle = 45; gradientGlow.colors = [0xFFFFF0, 0xFFFFFF]; gradientGlow.alphas = [0, 1]; gradientGlow.ratios = [0, 255]; gradientGlow.blurX = 10; gradientGlow.blurY = 10; gradientGlow.strength = 2; gradientGlow.quality = BitmapFilterQuality.HIGH; gradientGlow.type = BitmapFilterType.OUTER; panel.filters =[gradientGlow]; this.rawChildren.addChild(panel); pages.push(panel); panel.addEventListener(MouseEvent.CLICK, function(e:MouseEvent){onClickHandler(e,title,chld)}); this.addEventListener(CustomPageClickEvent.PANEL_CLICKED, function(e:CustomPageClickEvent){onCustomPanelClicked(e,title)}); } public function onClickHandler(e:MouseEvent,title:String,chld:Object):void { //var panel:Panel; for each(var stp1:NewPanel in pages){ if(stp1.title==title){ var eventObj:CustomPageClickEvent = new CustomPageClickEvent("panelClicked"); eventObj.panelClicked = stp1; dispatchEvent(eventObj); } } } private function onCustomPanelClicked(e:CustomPageClickEvent,title:String):void { //cleanup itself Alert.show("onCustomPanelClicked" + title); var panel:NewPanel; for each(var stp:NewPanel in pages){ startAnimation(e,stp); } if(title == e.panelClicked.title){ panel = new NewPanel(null); panel.title = title; panel.name=title; panel.width = 150; panel.height = 80; panel.x=100; panel.y=40; this.rawChildren.addChild(panel); // var slideRight:SlideRight = new SlideRight(); slideRight.target=panel; slideRight.duration=750; slideRight.showTarget=true; slideRight.play(); //draw the steps var jsonData = this.map.getValue(title); var posX:Number = 50; var posY:Number = 175; for each ( var pnl:NewPanel in pages){ pages.pop(); } for each ( var stp1:Object in jsonData.children){ //Alert.show("map step=" + stp.text ); panel = new NewPanel(null); panel.title = stp1.text; panel.name=stp1.id; panel.width = 100; panel.id=stp1.id; panel.height = 80; panel.x = posX; panel.y=posY; posX+=150; var s:String="hi" + stp1.text; panel.addEventListener(MouseEvent.CLICK, function(e:MouseEvent){onChildClick(e,s);}); this.addEventListener(CustomPageClickEvent.PANEL_CLICKED, function(e:CustomPageClickEvent){onCustomPnlClicked(e)}); this.rawChildren.addChild(panel); // Alert.show("map step=" + this.getChildIndex(panel) ); // oldPanelIds.push(panel); pages.push(panel); //this.addEventListener(CustomPageClickEvent.PANEL_CLICKED, //function(e:CustomPageClickEvent){onCustomPanelClicked(e,title)}); var slide:SlideUp = new SlideUp(); slide.target=panel; slide.duration=1500; slide.showTarget=false; slide.play(); } } } public function onChildClick(e:MouseEvent,s:String):void { //var panel:Panel; //Alert.show(e.currentTarget.title); for each(var stp1:NewPanel in pages){ if(stp1.title==e.currentTarget.title){ var eventObj:CustomPageClickEvent = new CustomPageClickEvent("panelClicked"); eventObj.panelClicked = stp1; dispatchEvent(eventObj); } } } private function onCustomPnlClicked(e:CustomPageClickEvent):void { for each ( var pnl:NewPanel in pages){ pages.pop(); } //onCustomPanelClicked(e,e.currentTarget.title); //Alert.show("hi from cstm" + e.panelClicked.title); } private function fadePanel(event:Event,panel:NewPanel):void{ panel.alpha -= .005; if (panel.alpha <= 0){ //Alert.show(panel.title); panel.removeEventListener(Event.ENTER_FRAME, function(e:Event){fadePanel(e,panel);}); }; panel.title=""; } private function startAnimation(event:CustomPageClickEvent,panel:NewPanel):void{ panel.addEventListener(Event.ENTER_FRAME, function(e:Event){fadePanel(e,panel)}); } Thanks in advance. Palash

    Read the article

< Previous Page | 305 306 307 308 309 310 311 312 313 314 315 316  | Next Page >