`

Flex中的Image屬性 (width, contentWidth, content.width)的差異

    博客分类:
  • flex
阅读更多

 

Flex是個包裹著糖衣的惡魔,其實這樣講是比較聳動啦,之所以會這樣講是因為Flex表面上看起來很容易,會很容易讓人家覺得元件拖一拖拉一拉就可以完成一隻程式,但是不論是哪種程式語言(就算是大家比較熟析的ASP.NET),基礎永遠是最重要的,所以再次提一次,要用Flex的話,ActionScript 3.0真的要好好學啊。

很多人大都搞不清楚Image的運作方式,對Flex中的Image元件這麼多屬性更是搞不清楚,所以利用一些時間來紀錄一下width, contentWidth和content.width有什麼不一樣。

 

我用最簡單的來說說明這件事,示範和較為原理的部分下次再寫。

  1. width和height是同一組的屬性,指的是Image的控制元件的寬和高,一般而言跟讀入的圖片沒有絕對關係,但是當Image元件沒有設定width和height屬性時,預設大小為讀入圖片的寬與高,需要注意的是complete事件並不會吐出正確的值,必須至少要等待到updateComplete事件才能讀取正確的資料。(該示範下次有時間再寫)
  2. contentWidth和contentHeight是同一組的屬性,指的是讀取圖片後的內容,在原廠的Help中寫道:』Width of the scaled content loaded by the control, in pixels.』,這句話是說contentWidth指的是縮放或調整後的圖片大小,若是在complete事件觸發時就是原始圖片的width或是height,反之在updateComplete事件觸發時,就是變更後的width或是height,這組屬性比較讓人造成誤會。
  3. content.width和content.height是屬於content同一組的屬性,content指的就是讀取圖片本身,而content.width和content.height就是圖片的widh和height屬性,complete事件觸發時就可以得到圖片原始大小,事後縮放並不會去影響該值。

這樣應該就可以解釋的很清楚了,每一種屬性有其使用方便的地方,你可以慎選適合的屬性來使用,這其實看示範跟繼承表會比較容易了解是怎麼一回事,先預告一下,會這樣的原因就在於Image繼承SwfLoader,而SwfLoader則是用Loader來實作出來的,若想要了解Loader可以參考Help或是看我書中的介紹,應該都蠻清楚的。

 

thanks: http://blog.riaproject.com/flex/254.html

分享到:
评论

相关推荐

    Ios上的图片滚屏效果 代码详解

    scrollView.contentSize = CGSize(width: contentWidth, height: view.bounds.height) scrollView.contentOffset = CGPoint(x: 0, y: 0) ``` 5. **实现平滑滚动**: 默认情况下,UIScrollView的滚动是连续的。...

    ios-自定义按钮.zip

    let imageRect = CGRect(x: titleSize.width + spacing, y: (contentHeight - imageSize.height) / 2, width: imageSize.width, height: imageSize.height) // 更新按钮的内容EdgeInsets contentEdgeInsets = ...

    页面转pdf所需js(html2canvas.js和jsPdf.debug.js)下载(2)

    var contentWidth = canvas.width; var contentHeight = canvas.height; //一页pdf显示html页面生成的canvas高度; var pageHeight = contentWidth / 592.28 * 841.89; //未生成pdf的html页面高度 var ...

    页面转pdf所需js(html2canvas.js和jsPdf.debug.js)下载(1)

    var contentWidth = canvas.width; var contentHeight = canvas.height; //一页pdf显示html页面生成的canvas高度; var pageHeight = contentWidth / 592.28 * 841.89; //未生成pdf的html页面高度 var ...

    UIScrollView 无限自动循环

    scrollView.contentSize = CGSize(width: contentWidth, height: view.bounds.height) // 监听滚动事件 scrollView.delegate = self ``` 然后你需要实现`UIScrollViewDelegate`协议中的`...

    QML--放大缩小图片

    在这个例子中,`Flickable`允许用户在图片上滚动,而`contentWidth`和`contentHeight`根据图片的缩放比例设置,使得可以查看到图片的全部内容。 在实际应用中,可能还需要考虑其他因素,如保持图片的原始比例、设置...

    scrollView的循环滚动

    let contentWidth = scrollView.contentSize.width let visibleWidth = scrollView.frame.width let currentIndex = Int((scrollView.contentOffset.x + visibleWidth / 2) / contentWidth) // 根据currentIndex...

    UIScrollView滚动视图的无限循环切换,自动顺序,逆序图片播放

    scrollView.contentSize = CGSize(width: contentWidth, height: scrollView.frame.height) ``` 接下来,我们要实现自动滚动。这可以通过使用`NSTimer`来定时改变`UIScrollView`的contentOffset实现。为了支持顺序...

    ios-蜂巢布局.zip

    return CGSize(width: contentWidth, height: contentHeight) } ``` 4. **布局更新**:在`shouldInvalidateLayout(forBoundsChange:)`方法中,判断布局是否需要刷新,确保布局随着滚动动态调整。 5. **自定义...

    html2canvas.js jspdf.debug.js

    var contentWidth = canvas.width; var contentHeight = canvas.height; //一页pdf显示html页面生成的canvas高度; var pageHeight = contentWidth / 592.28 * 841.89; //未生成pdf的html页面高度 var ...

    js 向左匀速滚动

    let contentWidth = content.offsetWidth; let scrollSpeed = 5; // 速度单位可以是像素/秒,这里为5像素/帧 function scroll() { let leftPos = content.style.left.replace('px', ''); if (leftPos <= -...

    ios 文字跑马灯效果实现

    在iOS开发中,实现文字跑马灯效果是一种常见的动态视觉设计,它能让文字在视图边界内滚动显示,常用于创建通知、标题或广告展示。本文将深入探讨如何使用iOS的Core Graphics框架来实现这一效果。 一、核心概念与...

    QML调研报告(下).pdf

    - **概念**:除了方法调用外,还可以在QML中设置和获取C++对象的属性值。 - **示例**:如果`MyClass`还有一个名为`name`的属性,则可以在QML中这样使用: ```qml CppObject { id: myObject property string ...

    PageHeight-crx插件

    获取页面底部的位置。 显示用户在页面上向下滚动了多少UPDATE 0.0.2-添加了新图标-单击图标后,您可以轻松禁用或启用扩展名UPDATE 0.0.3 -new更新 支持语言:English

    循环滚动ScrollView+自定义UIPageControl

    let contentWidth = scrollView.contentSize.width let viewWidth = scrollView.frame.width // 判断是否滚动到了最后一项或第一项 if contentOffset >= contentWidth - viewWidth { // 设置偏移量为第一项的...

    Qt qml 实现毛玻璃效果

    contentWidth: contentItem.width contentHeight: contentItem.height Image { id: background source: "Demo.png" anchors.fill: parent smooth: true fillMode: Image.PreserveAspectFit } Rectangle ...

    flash as3.0控制图片的自动播放

    如果需要图片自适应舞台大小,可以使用`Loader.contentWidth`和`Loader.contentHeight`属性获取图片原始尺寸,然后根据舞台尺寸调整比例。 ```actionscript loader.width = stage.stageWidth; loader.height = ...

    文字滚动的几种实现,jquery,js

    contentWidth = container.children().width(); setInterval(function(){ container.css('margin-left', '-=' + width).delay(500).queue(function(next){ $(this).css('margin-left', 0); next(); }); }, ...

    QML-轮播效果图-3D轮播效果效果图

    contentWidth: images.width * images.count contentHeight: images.height Image { id: images anchors.fill: parent source: "image://myImageProvider/0" // 用图像提供者获取图片 property int ...

    Qt Qml webview 打开本地PDF

    property alias contentHeight: webView.contentHeight Rectangle { anchors.fill: parent color: "transparent" WebView { id: webView anchors.fill: parent onLoadFinished: { if (status === ...

Global site tag (gtag.js) - Google Analytics